/* Mesoderm — стили по макету Figma */
@font-face {
  font-family: 'Hero';
  src: url('../fonts/Hero.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}



*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* ===== Forms, contacts and utility controls ===== */

.form__honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.form__required-note,
.form__notice {
	width: 100%;
	font-size: 12px;
	line-height: 1.4;
	text-align: left;
}

.form__required-note {
	color: var(--text-muted);
}

.form__notice {
	padding: 10px 12px;
	border-radius: var(--r-sm);
}

.form__notice--success {
	color: #36551f;
	background: rgba(137, 166, 98, .18);
}

.form__notice--error {
	color: #8b2525;
	background: rgba(190, 65, 65, .12);
}

.form__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
	max-width: 760px;
	color: var(--text);
	font-size: 12px;
	line-height: 1.45;
	text-align: left;
	cursor: pointer;
}

.form__consent input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	accent-color: var(--green);
}

.form__consent a {
	color: var(--green);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.quality-section__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--green);
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.quality-section__badge::before,
.quality-section__badge::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	background: currentColor;
}

.footer__contacts {
	display: grid;
	gap: 6px;
	max-width: 720px;
	margin: 0 auto 18px;
	font-size: 12px;
	line-height: 1.45;
}

.footer__contacts a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.back-to-top {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 50%;
	background: var(--green);
	color: var(--white);
	font-size: 24px;
	line-height: 1;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .2s, visibility .2s, transform .2s;
}

.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.page__main article.type-page {
	max-width: 900px;
	margin: 20px auto 80px;
}

.page__main article.type-page .category-intro__text {
	max-width: none;
	text-align: left;
	font-size: 14px;
	line-height: 1.6;
}

.page__main article.type-page .category-intro__text p + p,
.page__main article.type-page .category-intro__text ul + p,
.page__main article.type-page .category-intro__text p + ul {
	margin-top: 1em;
}

@media (min-width: 768px) {
	.form__required-note,
	.form__notice,
	.form__consent,
	.footer__contacts {
		font-size: 14px;
	}

	.back-to-top {
		right: 30px;
		bottom: 30px;
		width: 50px;
		height: 50px;
	}

	.page__main article.type-page .category-intro__text {
		font-size: 16px;
	}
}

:root {
	--green: #89A662;
	--dark: #444444;
	--text: #454545;
	--white: #FFFFFF;
	--gray-bg: #EAEAEA;
	--header-bg: #C4C4C4;
	--gray-placeholder: #DDDDDD;
	--border: rgba(69, 69, 69, 0.3);
	--border-light: rgba(68, 68, 68, 0.15);
	--container: 1440px;
	--pad: 15px;
	--r-sm: 5px;
	--r-md: 10px;
	--r-lg: 15px;
	--r-xl: 20px;
	--r-2xl: 30px;
	--font: 'Hero', system-ui, -apple-system, sans-serif;
	--text-muted: rgba(69, 69, 69, 0.85);
	--text-muted-80: rgba(69, 69, 69, 0.80);
	--text-muted-90: rgba(69, 69, 69, 0.90);
}

/* Зелёный акцент в заголовках (Figma) */
.h-accent {
	color: var(--green);
}

html { scroll-behavior: smooth; }

body {
	font-family: var(--font);
	color: var(--text);
	background: var(--white);
	line-height: 1.5;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input { font-family: inherit; }
button { cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }

.container {
	width: 100%;
}

/* Фиксированная ширина контента на всех страницах */
.site {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding-left: var(--pad);
	padding-right: var(--pad);
	padding-bottom: 30px;
}

.page {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.page__main { flex: 1; }

/* ===== Buttons ===== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 1000px;
	font-weight: 700;
	transition: opacity .2s, transform .15s;
	white-space: nowrap;
}

.btn:hover { opacity: .88; }
.btn:active { transform: scale(.98); }

.btn--outline {
	background: var(--white);
	border: 1px solid var(--border-light);
	color: var(--dark);
	padding: 9px 30px;
	font-size: 16px;
}

.btn--primary {
	background: var(--green);
	color: var(--white);
	padding: 7px 41px;
	font-size: 12px;
	font-weight: 700;
}

.btn--primary-lg {
	padding: 15px 40px;
	font-size: 16px;
	width: 100%;
}

.btn--text {
	background: transparent;
	color: var(--dark);
	font-size: 12px;
	font-weight: 700;
	padding: 8px 0;
	border-radius: var(--r-md);
	width: 100%;
}

.btn--cta {
	background: var(--green);
	color: var(--white);
	border-radius: var(--r-md);
	padding: 15px 30px;
	font-size: 12px;
	font-weight: 600;
	width: 100%;
}

/* ===== Header ===== */

.header {
	padding: 0;
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	position: relative;
	z-index: 0;
	padding: 10px;
}

/* Серая плашка шапки — на всю ширину окна, контент остаётся в контейнере */
.header__inner::before {
	content: '';
	position: absolute;
	z-index: -1;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--header-bg);
}

.header__logo img {
	width: 120px;
	filter: contrast(1.25);
}

.header__nav {
	display: none;
	align-items: center;
	gap: 33px;
}

.header__nav a {
	color: var(--dark);
	font-size: 20px;
	font-weight: 600;
}

.header__right { display: none; }

.header__cta { display: inline-flex; }

.header__burger {
	display: flex;
	padding: 0;
	line-height: 0;
}

.header__burger img {
	width: 40px;
	height: 40px;
	border-radius: var(--r-sm);
	transition: opacity .2s;
}

.header__burger.is-active img { opacity: 0.5; }

/* Mobile menu */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0,0,0,.45);
	opacity: 0;
	visibility: hidden;
	transition: .3s;
}

.mobile-menu.is-open { opacity: 1; visibility: visible; }

.mobile-menu__panel {
	position: absolute;
	top: 0; right: 0;
	width: min(300px, 85vw);
	height: 100%;
	background: var(--white);
	padding: 70px 28px 28px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	transform: translateX(100%);
	transition: transform .3s;
}

.mobile-menu.is-open .mobile-menu__panel { transform: translateX(0); }
.mobile-menu__panel a { color: var(--dark); font-size: 18px; }

/* ===== Hero ===== */

.hero {
	padding-top: 10px;
	padding-bottom: 30px;
}

.hero__image {
	width: 100%;
	height: 200px;
	border-radius: var(--r-sm);
	margin-bottom: 15px;
}

.hero__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	text-align: center;
	margin-bottom: 10px;
	line-height: 1;
	max-width: 280px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 40px;
}

.hero__subtitle {
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 400;
	text-align: center;
	line-height: 1.2;
	max-width: 260px;
	margin: 0 auto 40px;
}

/* ===== Catalog (home) ===== */

.catalog-section {
	margin-bottom: 80px;
}

.catalog-section--page {
	margin-bottom: 150px;
}

@media (min-width: 1024px) {
	.catalog-section--page {
		margin-bottom: 200px;
	}
}

.catalog-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}

/* Мозаика: одна и та же раскладка (3 колонки) на ПК и на мобильных,
   всё масштабируется пропорционально ширине. */
.catalog-mosaic {
	--mosaic-gap: clamp(8px, 1.5cqw, 20px);
	container-type: inline-size;
	display: grid;
	/* 5 колонок: две узкие слева, центральная, две узкие справа; 2 ряда */
	grid-template-columns: 1fr 1fr 1.36fr 1fr 1fr;
	grid-template-rows: auto auto;
	column-gap: var(--mosaic-gap);
	row-gap: calc(var(--mosaic-gap) * 1.5);
	align-items: start;
}

/* обёртки колонок не участвуют в раскладке — плитки ставятся прямо в сетку */
.catalog-mosaic__col,
.catalog-mosaic__pair {
	display: contents;
}

.catalog-item {
	display: flex;
	flex-direction: column;
	gap: 5px;
	color: var(--dark);
	transition: opacity .2s;
	min-width: 0;
}

.catalog-item:hover { opacity: .85; }

.catalog-item--left_wide    { grid-area: 1 / 1 / 2 / 3; }
.catalog-item--left_pair_1  { grid-area: 2 / 1 / 3 / 2; }
.catalog-item--left_pair_2  { grid-area: 2 / 2 / 3 / 3; }
.catalog-item--center_tall  { grid-area: 1 / 3 / 2 / 4; }
.catalog-item--center_bottom { grid-area: 2 / 3 / 3 / 4; }
.catalog-item--right_pair_1 { grid-area: 1 / 4 / 2 / 5; }
.catalog-item--right_pair_2 { grid-area: 1 / 5 / 2 / 6; }
.catalog-item--right_wide   { grid-area: 2 / 4 / 3 / 6; }

/* Все картинки одной высоты — ряды ровные при любой ширине экрана */
.catalog-item img,
.catalog-item__placeholder {
	width: 100%;
	height: 17.9cqw;
	object-fit: cover;
	border-radius: clamp(5px, 1.1cqw, 15px);
	background: var(--gray-bg);
	flex-shrink: 0;
}

.catalog-item__placeholder {
	background: var(--gray-placeholder);
	border: 1px solid var(--border);
}

.catalog-item span {
	font-size: clamp(8px, 1.47cqw, 20px);
	line-height: 1.25;
	overflow-wrap: break-word;
	hyphens: auto;
}

/* Мобильные: плитки по 2 в строке, все одного размера */
@media (max-width: 767px) {
	.catalog-mosaic {
		--mosaic-gap: 12px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		row-gap: 20px;
	}

	.catalog-item--left_wide,
	.catalog-item--left_pair_1,
	.catalog-item--left_pair_2,
	.catalog-item--center_tall,
	.catalog-item--center_bottom,
	.catalog-item--right_pair_1,
	.catalog-item--right_pair_2,
	.catalog-item--right_wide {
		grid-area: auto;
	}

	.catalog-item img,
	.catalog-item__placeholder {
		height: auto;
		aspect-ratio: 1 / 1;
		border-radius: 10px;
	}

	.catalog-item span {
		font-size: 13px;
		line-height: 1.3;
	}
}

/* ===== Form ===== */

.form-section {
	margin-bottom: 80px;
	text-align: center;
}

.form-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 10px;
}

.form-section__subtitle {
	color: var(--text-muted-80);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.2;
	margin-bottom: 30px;
}

.form {
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	padding: 15px;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.form__fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.form__row {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.form__input {
	width: 100%;
	padding: 10px 15px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	background: var(--white);
	color: var(--text);
	font-size: 12px;
	outline: none;
	transition: border-color .2s;
}

.form__input:focus { border-color: var(--green); }
.form__input::placeholder { color: rgba(69,69,69,.55); }

.form__submit-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.form__disclaimer {
	color: var(--text);
	font-size: 8px;
	line-height: 1.45;
	text-align: center;
	padding: 0 6px;
}

/* ===== About ===== */

.about-section {
	margin-bottom: 80px;
}

.about-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}

.about-section__grid {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.about-section__lead {
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	line-height: 1.2;
	margin-bottom: 7px;
}

.about-section__desc {
	color: var(--text-muted-80);
	font-size: 12px;
	font-weight: 400;
	text-align: center;
	line-height: 1.2;
}

.about-section__image {
	width: 100%;
	border-radius: var(--r-sm);
	object-fit: cover;
}

.promo-zone {
	width: 100%;
	background: var(--gray-bg);
	border-radius: var(--r-lg) var(--r-lg) 0 0;
	padding: 40px 0 48px;
}

.promo-zone__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding-left: var(--pad);
	padding-right: var(--pad);
}

.quality-section {
	text-align: center;
	background: transparent;
	padding: 0;
}

.quality-section__badge {
	display: inline-flex;
	background: var(--green);
	color: var(--white);
	border-radius: 10000px;
	padding: 5px 23px;
	font-size: 10px;
	font-weight: 400;
	margin-bottom: 20px;
}

.quality-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	margin-bottom: 10px;
}

.quality-section__text {
	color: var(--text-muted-90);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.2;
	margin-bottom: 30px;
}

.quality-section__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	padding: 15px 20px;
}

.quality-section__card img {
	width: 118px;
	border-radius: var(--r-sm);
}

.quality-section__card p {
	color: var(--text);
	font-size: 12px;
	line-height: 0.9;
	text-align: center;
}

/* ===== Why section (белая панель, карточки как в Figma) ===== */

.why-section {
	width: 100%;
	background: var(--white);
}

.why-section__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 40px var(--pad) 80px;
}

.why-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}

.why-section__cards {
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin-bottom: 30px;
}

.why-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	min-height: 130px;
	padding: 15px;
	background: var(--white);
	border: 1px solid rgba(69, 69, 69, 0.3);
	border-radius: var(--r-lg);
	overflow: hidden;
}

.why-card--gap {
	justify-content: flex-start;
	gap: 20px;
	min-height: auto;
}

.why-card__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 61px;
	height: 61px;
	background: var(--green);
	border-radius: var(--r-md);
}

.why-card__icon img {
	width: 33px;
	height: 33px;
	object-fit: contain;
}

.why-card__text {
	color: var(--text);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.2;
	margin: 0;
	max-width: 100%;
}

/* Декор справа (лёгкая заливка как в макете) */
.why-card::after {
	content: "";
	position: absolute;
	right: -20px;
	top: -15px;
	width: 90px;
	height: 110px;
	background: rgba(142, 156, 124, 0.03);
	border-radius: 8px;
	pointer-events: none;
}

.why-card:nth-child(2)::after {
	width: 52px;
	height: 115px;
	right: 10px;
	top: -13px;
}

.why-card:nth-child(3)::after {
	width: 62px;
	height: 125px;
	right: 5px;
	top: -21px;
	transform: rotate(10deg);
}

.why-section__closing {
	width: 100%;
	padding: 40px var(--pad) 50px;
	background-image: url('../images/lines.png');
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.why-section__conclusion {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	text-align: center;
	line-height: 1;
	margin: 0 auto 10px;
}

.why-section__note {
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 400;
	text-align: center;
	line-height: 1.2;
	max-width: 711px;
	margin: 0 auto;
	padding: 0 38px;
}

/* ===== Footer ===== */

.footer {
	width: 100%;
	background: var(--dark);
	border-radius: var(--r-lg) var(--r-lg) 0 0;
	margin-top: 30px;
	color: var(--white);
}

.footer__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 39px var(--pad);
	text-align: center;
}

.footer__logo {
	width: 153px;
	margin: 0 auto 31px;
}

.footer__phone {
	font-size: 18px;
	margin-bottom: 12px;
}

.footer__phone a { color: var(--white); }

.footer__legal {
	font-size: 12px;
	line-height: 1.4;
	margin-bottom: 12px;
	padding: 0 20px;
}

.footer__links {
	font-size: 10px;
	line-height: 1.5;
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
}

.footer__links a {
	text-decoration: underline;
}

@media (min-width: 768px) {
	.footer__links a + a::before {
		content: " | ";
		text-decoration: none;
	}
}

/* ===== Breadcrumbs ===== */

.breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 15px 0;
	font-size: 12px;
	color: var(--dark);
}

.breadcrumbs__sep {
	width: 5px;
	height: 8px;
	flex-shrink: 0;
	opacity: .45;
}

.breadcrumbs a:hover { text-decoration: underline; }

.breadcrumbs span {
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ===== Category page ===== */

/* Баннер категории — на всю ширину окна */
.category-banner {
	margin-bottom: 20px;
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

.category-banner img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	border-radius: 0;
}

.category-intro {
	margin-bottom: 30px;
}

.category-intro__title {
	color: var(--green);
	font-size: 18px;
	font-weight: 500;
	text-align: center;
	line-height: 1;
	margin-bottom: 15px;
}

.category-intro__text {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.2;
	margin-bottom: 10px;
}

.products-list {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-bottom: 30px;
}

.product-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: auto;
	padding-bottom: 30px;
	margin-bottom: 0;
}

.product-card + .product-card {
	padding-top: 0;
}

.product-card__img {
	width: 100%;
}

.product-card__img img,
.product-card__img .product-card__placeholder {
	width: 100%;
	height: auto;
	aspect-ratio: 325 / 346;
	object-fit: cover;
	border-radius: var(--r-md);
	border: 1px solid rgba(69, 69, 69, 0.3);
	background: #fff;
}

.product-card__placeholder {
	background: var(--gray-placeholder);
	border: 1px solid var(--border);
}

.product-card__title {
	color: var(--dark);
	font-size: 12px;
	text-align: left;
	line-height: 1.35;
}

.product-card .btn.btn--text {
	background: #EAEAEA;
}

/* ===== Product page ===== */

.product-layout {
	display: flex;
	flex-direction: column;
	margin-bottom: 30px;
}

.product-layout__desc--desktop,
.product-layout__cta--desktop { display: none; }

.product-layout__info {
	margin-bottom: 15px;
}

.product-layout__brand {
	color: var(--green);
	font-size: 12px;
	margin-bottom: 5px;
}

.product-layout__title {
	color: var(--dark);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	margin-bottom: 10px;
}

.product-layout__pack {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.2;
	margin-bottom: 15px;
}

.product-layout__photo {
	margin-bottom: 15px;
}

.product-layout__photo img {
	width: 100%;
	border-radius: var(--r-lg);
	border: 1px solid rgba(69, 69, 69, 0.3);
	object-fit: cover;
}

.product-layout__desc {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.2;
	margin-bottom: 20px;
}

.product-layout__cta {
	margin-bottom: 30px;
}

.product-details {
	margin-bottom: 30px;
}

.accordion__item {
	border-bottom: 1px solid var(--border);
}

.accordion__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 15px 0;
	text-align: left;
	color: var(--dark);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	gap: 12px;
}

.accordion__icon {
	display: block;
	flex-shrink: 0;
	width: 19px;
	height: 11px;
	border: none;
	background: transparent;
	transform: rotate(0deg);
	transform-origin: center center;
	transition: transform .3s ease;
}

.accordion__icon::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='11' viewBox='0 0 19 11' fill='none'%3E%3Cpath d='M1 1.5 9.5 9.5 18 1.5' stroke='%23454545' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.accordion__item.is-open .accordion__icon {
	transform: rotate(180deg);
}

.accordion__body {
	display: none;
	padding-bottom: 20px;
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.2;
}

.accordion__item.is-open .accordion__body { display: block; }

.accordion__body ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
	list-style: disc;
	padding-left: 20px;
}

.accordion__body li {
	display: list-item;
}

.accordion__body p + p { margin-top: 14px; }

/* ===== Blog ===== */

.blog-banner {
	margin-bottom: 20px;
}

.blog-banner img {
	width: 100%;
	height: 162px;
	object-fit: cover;
	border-radius: var(--r-sm);
}

.blog-section {
	margin-bottom: 80px;
}

.blog-section__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}

.blog-section__empty {
	text-align: center;
	color: var(--text-muted);
	font-size: 14px;
	grid-column: 1 / -1;
}

.blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.post-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 20px;
	min-height: auto;
}

.post-card__media {
	display: block;
}

.post-card__media img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	border-radius: var(--r-sm);
	background: var(--gray-bg);
}

.post-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.post-card__date {
	color: var(--text);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
}

.post-card__title {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
}

.post-card__title a {
	color: var(--text);
}

.post-card__title a:hover { opacity: .85; }

.post-card__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 10px 30px;
	border: 1px solid rgba(69, 69, 69, 0.4);
	border-radius: var(--r-md);
	color: var(--text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	transition: opacity .2s;
}

.post-card__btn:hover { opacity: .85; }

.blog-pagination {
	margin-top: 30px;
	width: 100%;
	display: flex;
	justify-content: center;
}

.blog-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.blog-pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.blog-pagination a.page-numbers,
.blog-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--r-sm);
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	border: 1px solid var(--border-light);
	background: var(--white);
	text-decoration: none;
	transition: background .2s, border-color .2s, color .2s;
}

.blog-pagination a.page-numbers:hover {
	background: var(--gray-bg);
	border-color: var(--border);
}

.blog-pagination span.page-numbers.current {
	background: var(--green);
	border-color: var(--green);
	color: var(--white);
}

.blog-pagination span.page-numbers.dots {
	border: none;
	background: transparent;
	min-width: auto;
	padding: 0 4px;
}

/* ===== Single article ===== */

.article-single {
	margin-bottom: 80px;
}

.article-single__banner {
	margin-bottom: 20px;
}

.article-single__banner img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	border-radius: var(--r-sm);
}

.article-single__header {
	margin-bottom: 20px;
}

.article-single__date {
	display: block;
	color: var(--text);
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 10px;
}

.article-single__title {
	color: var(--dark);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	margin: 0;
}

.article-single__content {
	color: var(--text-muted);
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 30px;
}

.article-single__content p + p { margin-top: 12px; }

.article-single__content h2,
.article-single__content h3 {
	color: var(--dark);
	font-weight: 500;
	margin: 24px 0 12px;
	line-height: 1.2;
}

.article-single__content ul,
.article-single__content ol {
	padding-left: 20px;
	margin: 12px 0;
}

.article-single__content li + li { margin-top: 6px; }

.article-single__content img {
	border-radius: var(--r-md);
	margin: 16px 0;
}

.article-single__footer {
	display: flex;
	justify-content: center;
}

.article-single__back {
	padding: 10px 30px;
	font-size: 14px;
}

/* ===== Cooperation modal ===== */

.cooperation-modal {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 15px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .25s ease, visibility .25s ease;
}

.cooperation-modal.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.cooperation-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(68, 68, 68, 0.45);
}

.cooperation-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 700px;
	max-height: calc(100vh - 30px);
	overflow-y: auto;
	background: var(--gray-bg);
	border-radius: var(--r-md);
	padding: 30px 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
	transform: translateY(12px);
	transition: transform .25s ease;
}

.cooperation-modal.is-open .cooperation-modal__dialog {
	transform: translateY(0);
}

.cooperation-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	border: none;
	background: var(--white);
	border-radius: 50%;
	color: var(--dark);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	transition: opacity .2s;
}

.cooperation-modal__close:hover { opacity: .75; }

.cooperation-modal__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	margin: 0 40px 10px 0;
}

.cooperation-modal__subtitle {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.35;
	text-align: center;
	margin-bottom: 20px;
}

.cooperation-form--modal {
	background: transparent;
	padding: 0;
	margin: 0;
}

.cooperation-form--modal .form__fields { gap: 10px; }

.cooperation-form--modal .form__submit-wrap { margin-top: 10px; }

.product-layout__cta .btn--cta {
	width: 100%;
	border: none;
	cursor: pointer;
	font-family: inherit;
}

/* ===================== TABLET ===================== */

@media (min-width: 768px) {
	:root { --pad: 15px; }

	.header__inner { padding: 15px; }

	.header__logo img { width: 150px; }

	.hero__image {
		height: 350px;
		margin-bottom: 20px;
	}

	.hero__title {
		font-size: 32px;
		max-width: 420px;
		margin-bottom: 10px;
		
	}

	.hero__subtitle {
		font-size: 16px;
		max-width: 450px;
		margin-bottom: 150px;
	}

	.catalog-section,
	.form-section,
	.about-section {
		margin-bottom: 150px;
	}

	.catalog-section__title,
	.about-section__title,
	.form-section__title {
		font-size: 32px;
		margin-bottom: 30px;
	}

	.form-section__subtitle { font-size: 16px; }

	.form {
		border-radius: var(--r-md);
		padding: 30px;
		max-width: 700px;
		margin: 0 auto;
	}

	.form__row { flex-direction: row; gap: 20px; }
	.form__input { font-size: 16px; padding: 15px; border-radius: var(--r-md); }
	.form__disclaimer { font-size: 12px; }

	.about-section__lead { font-size: 22px; max-width: 495px; margin-left: auto; margin-right: auto; }
	.about-section__desc { font-size: 16px; max-width: 495px; margin-left: auto; margin-right: auto; }
	.about-section__image { border-radius: var(--r-md); max-height: 400px; }

	.promo-zone {
		border-radius: var(--r-2xl) var(--r-2xl) 0 0;
		padding: 50px 0 48px;
	}

	.quality-section__badge { font-size: 16px; padding: 10px 30px; margin-bottom: 30px; }
	.quality-section__title { font-size: 32px; }
	.quality-section__text { font-size: 16px; margin-bottom: 40px; }

	.quality-section__card {
		border-radius: var(--r-xl);
		padding: 50px 53px;
		max-width: 600px;
		margin: 0 auto;
		gap: 50px;
	}

	.quality-section__card img { width: 212px; border-radius: var(--r-xl); }
	.quality-section__card p { font-size: 16px; }

	.why-section__inner { padding: 50px var(--pad) 150px; }

	.why-section__title { font-size: 32px; margin-bottom: 40px; }

	.why-section {
		border-radius: var(--r-2xl);
	}

	.why-section__cards {
		gap: 20px;
		margin-bottom: 100px;
	}

	.why-card { min-height: 200px; }

	.why-card__text { font-size: 20px; }

	.why-section__closing { padding: 50px var(--pad) 80px; }

	.why-section__conclusion { font-size: 32px; max-width: 572px; }
	.why-section__note { font-size: 16px; max-width: 518px; padding: 0; }

	.footer {
		border-radius: var(--r-2xl) var(--r-2xl) 0 0;
		margin-top: 30px;
	}

	.footer__inner { padding: 48px 40px; }

	.footer__logo { width: 220px; margin-bottom: 50px; }
	.footer__phone { font-size: 28px; margin-bottom: 30px; }
	.footer__legal { font-size: 16px; max-width: 500px; margin: 0 auto 30px; }
	.footer__links { font-size: 16px; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 0; }
	.footer__links a { max-width: none; }
	.footer__links a + a::before { content: " | "; text-decoration: none; }

	.breadcrumbs { font-size: 16px; }

	.category-banner img { height: 300px; }
	.blog-banner img { height: 300px; border-radius: var(--r-lg); }
	.blog-section__title { font-size: 32px; margin-bottom: 40px; }
	.blog-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
	.post-card__media img { height: 220px; border-radius: var(--r-md); }
	.post-card__date { font-size: 16px; }
	.post-card__title { font-size: 16px; }
	.post-card__btn { font-size: 16px; padding: 13px 30px; border-radius: var(--r-md); }
	.article-single__banner img { height: 300px; border-radius: var(--r-lg); }
	.article-single__title { font-size: 32px; }
	.article-single__content { font-size: 16px; }
	.cooperation-modal__dialog { padding: 40px; border-radius: var(--r-lg); }
	.cooperation-modal__title { font-size: 32px; margin-bottom: 15px; }
	.cooperation-modal__subtitle { font-size: 16px; margin-bottom: 30px; }
	.category-intro__title { font-size: 32px; }
	.category-intro__text { font-size: 16px; text-align: center; max-width: 700px; margin-left: auto; margin-right: auto; }

	.products-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 30px 20px;
		margin-bottom: 150px;
	}

	.product-card { padding-bottom: 0; align-items: flex-start; }

	.product-card__img img {
		height: 346px;
		aspect-ratio: auto;
		padding: 20px;
	}

	.product-card__title { font-size: 16px; text-align: left; max-width: none; }

	.product-layout__brand { font-size: 16px; }
	.product-layout__title { font-size: 20px; }
	.product-layout__pack,
	.product-layout__desc { font-size: 16px; }
	.product-layout__photo img { border-radius: var(--r-lg); max-height: 500px; }

	.product-details { margin-bottom: 150px; }

	.accordion__header { font-size: 20px; font-weight: 500; padding: 20px 0; }
	.accordion__body { font-size: 16px; line-height: 1.2; }

	.btn--primary { padding: 10px 30px; font-size: 16px; }
	.btn--text { font-size: 16px; }
	.btn--cta { font-size: 16px; border-radius: var(--r-md); padding: 15px; max-width: 400px; }
}

/* ===================== DESKTOP ===================== */

/* Шапка: меню по бокам от лого — только с 1280 px, ниже остаётся бургер */
@media (min-width: 1280px) {
	.header__nav { display: flex; }
	.header__nav a { white-space: nowrap; font-size: 18px; }
	.header__right {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 36px;
	}
	.header__nav { gap: 36px; }
	.header__burger { display: none; }
	.mobile-menu { display: none; }
	.header__logo img { width: 200px; }

	.header__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		gap: 56px;
		padding: 18px 15px;
	}

	.header__nav--left { justify-content: flex-end; }
}

@media (min-width: 1440px) {
	.header__nav a { font-size: 20px; }
	.header__nav,
	.header__right { gap: 48px; }
	.header__logo img { width: 230px; }
	.header__inner { gap: 72px; }
}

@media (min-width: 1024px) {
	:root { --pad: 40px; }

	.header { padding-top: 0; }
	.header__inner { margin-bottom: 20px; }

	.btn--outline { padding: 10px 30px; }

	.hero__image {
		height: 612px;
		border-radius: var(--r-lg);
		margin-bottom: 0;
	}

	.hero__title {
		font-size: 50px;
		max-width: 756px;
		margin-top: 120px;
		margin-bottom: 20px;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
		line-height: 1;
	}

	.hero__subtitle {
		font-size: 20px;
		max-width: 612px;
		margin-bottom: 120px;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
		line-height: 1.2;
	}

	.catalog-section {
		margin-bottom: 200px;
	}

	.catalog-section__title,
	.about-section__title {
		font-size: 50px;
		margin-bottom: 50px;
		text-align: center;
		width: 100%;
	}

	.form-section__title {
		font-size: 50px;
		line-height: 1;
		margin-bottom: 20px;
		text-align: center;
	}

	.form-section__subtitle {
		font-size: 20px;
		line-height: 1.2;
		max-width: 670px;
		margin-bottom: 50px;
		margin-left: auto;
		margin-right: auto;
	}

	.form-section {
		margin-bottom: 200px;
	}

	.form {
		max-width: none;
		border-radius: var(--r-lg);
		padding: 50px;
		gap: 50px;
		margin-bottom: 0;
	}

	.form__input {
		font-size: 20px;
		padding: 20px 15px;
		border-radius: var(--r-md);
		flex: 1;
	}

	.form__row {
		flex-direction: row;
		gap: 20px;
	}

	.form__row .form__input { flex: 1; }

	.btn--primary-lg {
		padding: 15px 114px;
		width: auto;
	}

	.form__disclaimer { font-size: 14px; max-width: 520px; }

	.site { padding-bottom: 0; }

	.about-section { margin-bottom: 200px; }

	.about-section__grid {
		flex-direction: row;
		align-items: flex-start;
		gap: 38px;
	}

	.about-section__text { flex: 1; }

	.about-section__lead {
		font-size: 32px;
		font-weight: 500;
		line-height: 1.2;
		text-align: left;
		max-width: none;
		margin-bottom: 20px;
	}

	.about-section__desc {
		font-size: 20px;
		text-align: left;
		max-width: none;
	}

	.about-section__image {
		flex: 1;
		max-height: 385px;
		border-radius: var(--r-lg);
		object-fit: cover;
	}

	.promo-zone {
		margin-top: 0;
		border-radius: var(--r-2xl) var(--r-2xl) 0 0;
		padding: 50px 0 80px;
	}

	.quality-section__badge {
		font-size: 24px;
		padding: 10px 30px;
		margin-bottom: 30px;
	}

	.quality-section__title {
		font-size: 50px;
		line-height: 1;
		max-width: 1114px;
		margin-left: auto;
		margin-right: auto;
	}

	.quality-section__text {
		font-size: 20px;
		line-height: 1.2;
		max-width: 839px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50px;
	}

	.quality-section__card {
		max-width: none;
		border-radius: var(--r-xl);
		padding: 50px 53px;
		margin-bottom: 0;
		gap: 50px;
	}

	.quality-section__card img {
		width: 212px;
		border-radius: var(--r-xl);
	}

	.quality-section__card p { font-size: 20px; }

	.why-section {
		border-radius: var(--r-2xl);
	}

	.why-section__inner {
		padding: 50px var(--pad);
	}

	.why-section__title {
		font-size: 50px;
		line-height: 1;
		max-width: 1114px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50px;
		text-align: center;
	}

	.why-section__cards {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
		margin-bottom: 100px;
	}

	.why-card {
		min-height: 228px;
		border-radius: var(--r-lg);
	}

	.why-card__text {
		font-size: 24px;
		line-height: 1.2;
		max-width: 392px;
	}

	.why-section__closing {
		padding: 80px var(--pad) 285px;
		background-size: contain;
	}

	.why-section__conclusion {
		font-size: 50px;
		line-height: 1;
		max-width: 964px;
		margin-bottom: 20px;
	}

	.why-section__note {
		font-size: 20px;
		line-height: 1.2;
		max-width: 711px;
		padding: 0;
	}

	.footer {
		border-radius: var(--r-2xl) var(--r-2xl) 0 0;
		margin-top: 0;
	}

	.footer__legal { font-size: 20px; margin-bottom: 20px; }
	.footer__links { font-size: 20px; }

	.footer__inner { padding: 50px var(--pad); }

	.footer__logo { width: 309px; margin-bottom: 50px; }
	.footer__phone { font-size: 32px; margin-bottom: 20px; }

	/* Category */
	.category-banner img { height: 612px; margin-bottom: 50px; }

	.blog-banner img { height: 612px; margin-bottom: 50px; border-radius: var(--r-lg); }
	.blog-section { margin-bottom: 200px; }
	.blog-section__title { font-size: 50px; margin-bottom: 50px; }
	.blog-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
	.post-card__media img { height: 346px; border-radius: var(--r-md); }
	.post-card__date { font-size: 16px; }
	.post-card__title { font-size: 20px; line-height: 1.2; }
	.post-card__btn { font-size: 20px; padding: 13px 30px; border-radius: var(--r-md); }
	.article-single { margin-bottom: 200px; }
	.article-single__banner img { height: 612px; border-radius: var(--r-lg); margin-bottom: 50px; }
	.article-single__header { text-align: center; margin-bottom: 50px; }
	.article-single__date { font-size: 16px; margin-bottom: 20px; }
	.article-single__title { font-size: 50px; line-height: 1; max-width: 1114px; margin: 0 auto; }
	.article-single__content { font-size: 20px; line-height: 1.5; max-width: 900px; margin: 0 auto 50px; }
	.cooperation-modal__dialog { padding: 50px; border-radius: var(--r-lg); max-width: 900px; }
	.cooperation-modal__title { font-size: 50px; line-height: 1; margin: 0 50px 20px 0; }
	.cooperation-modal__subtitle { font-size: 20px; margin-bottom: 40px; }

	.category-intro {
		margin-bottom: 50px;
	}

	.category-intro__title {
		font-size: 50px;
		font-weight: 500;
		line-height: 1;
		text-align: center;
		margin-bottom: 20px;
	}

	.category-intro__text {
		font-size: 24px;
		line-height: 1.2;
		text-align: center;
		max-width: 1129px;
		margin-left: auto;
		margin-right: auto;
	}

	.products-list {
		grid-template-columns: repeat(4, 1fr);
		gap: 20px;
		margin-bottom: 200px;
	}

	.product-card {
		align-items: flex-start;
		gap: 20px;
		min-height: 478px;
		padding-bottom: 0;
	}

	.product-card__img {
		max-width: none;
		width: 100%;
	}

	.product-card__img img {
		height: 346px;
		aspect-ratio: auto;
	}

	.product-card__title {
		font-size: 16px;
		font-weight: 400;
		text-align: left;
		max-width: none;
	}

	/* Product */
	.product-layout__desc--mobile,
	.product-layout__cta--mobile { display: none; }

	.product-layout__desc--desktop { display: block; }
	.product-layout__cta--desktop { display: block; }

	.product-layout {
		display: grid;
		grid-template-columns: minmax(280px, 555px) 1fr;
		column-gap: 40px;
		row-gap: 0;
		align-items: start;
		margin-bottom: 100px;
	}

	.product-layout__photo {
		grid-column: 1;
		grid-row: 1 / span 4;
		margin-bottom: 0;
	}

	.product-layout__info { grid-column: 2; margin-bottom: 0; }

	.product-layout__photo img { max-height: 682px; border-radius: var(--r-lg); }

	.product-layout__brand { font-size: 20px; line-height: 1.2; }
	.product-layout__title { font-size: 30px; font-weight: 500; line-height: 1; max-width: 670px; margin-bottom: 20px; }
	.product-layout__pack,
	.product-layout__desc { font-size: 18px; line-height: 1.2; }
	.product-layout__desc { margin-bottom: 30px; }

	.product-layout__cta { max-width: 765px; margin-bottom: 0; }
	.btn--cta { max-width: 765px; border-radius: var(--r-md); padding: 15px 30px; font-size: 20px; font-weight: 600; }

	.product-details {
		margin-bottom: 200px;
	}

	.accordion__header { font-size: 32px; font-weight: 500; line-height: 1.2; margin-bottom: 0; }
	.accordion__body { font-size: 20px; line-height: 1.2; max-width: 1236px; }

	.breadcrumbs { font-size: 16px; }
}

/* ===== Hero slider (главная) ===== */

.hero-slider {
	position: relative;
}

/* Баннер — на всю ширину окна */
.hero-slider__viewport {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	border-radius: 0;
}

.hero-slider .hero__image {
	object-fit: cover;
	border-radius: 0;
}

.hero-slider__track {
	display: flex;
	transition: transform .45s ease;
	will-change: transform;
}

.hero-slider__slide {
	flex: 0 0 100%;
	min-width: 100%;
}

.hero-slider__slide .hero__image {
	margin-bottom: 0;
}

.hero-slider__dots {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	margin-top: 0;
	z-index: 2;
}

.hero-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: auto;
	height: auto;
	padding: 8px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-size: 44px;
	font-weight: 300;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 3;
	transition: opacity .2s;
}

.hero-slider__arrow span {
	display: block;
	line-height: 1;
}

.hero-slider__arrow--prev { left: 8px; }
.hero-slider__arrow--next { right: 8px; }
.hero-slider__arrow:hover { opacity: .75; }

.hero-slider__dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	box-sizing: border-box;
	cursor: pointer;
	transition: background .2s, border-color .2s;
}

.hero-slider__dot.is-active {
	background: #fff;
	border-color: #fff;
}

.hero-slider__dot:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.mesoderm-logo-text {
	font-size: 22px;
	font-weight: 600;
	color: var(--green);
}

@media (min-width: 1024px) {
	.hero-slider__arrow {
		font-size: 52px;
		padding: 10px;
	}

	.hero-slider__arrow--prev { left: 16px; }
	.hero-slider__arrow--next { right: 16px; }

	.hero-slider__dots {
		bottom: 24px;
		gap: 14px;
	}

	.hero-slider__content {
		position: relative;
	}
}

/* ===== Catalog page ===== */

.catalog-page {
	margin-bottom: 80px;
}

.catalog-page__title {
	color: var(--text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	margin-bottom: 30px;
}

.catalog-categories {
	margin-bottom: 40px;
}

.catalog-categories__title,
.catalog-products__title {
	color: var(--text);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	margin-bottom: 20px;
	text-align: center;
}

.catalog-categories__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
}

.catalog-category-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: var(--dark);
	transition: opacity .2s;
}

.catalog-category-tile:hover {
	opacity: .85;
}

.catalog-category-tile__img,
.catalog-category-tile__placeholder {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: var(--r-sm);
}

.catalog-category-tile__placeholder {
	background: var(--gray-placeholder);
	border: 1px solid var(--border);
}

.catalog-category-tile__name {
	font-size: 12px;
	line-height: 1.35;
	font-weight: 500;
}

.catalog-category-tile__count {
	font-size: 11px;
	color: var(--text-muted);
}

.catalog-products {
	margin-bottom: 30px;
}

.catalog-products__empty {
	text-align: center;
	color: var(--text-muted);
	font-size: 14px;
	padding: 30px 0;
}

.pagination {
	margin-top: 30px;
	width: 100%;
	display: flex;
	justify-content: center;
}

.pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pagination a.page-numbers,
.pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--r-sm);
	color: var(--text);
	font-size: 14px;
	font-weight: 500;
	border: 1px solid var(--border-light);
	background: var(--white);
	text-decoration: none;
	transition: background .2s, border-color .2s, color .2s;
}

.pagination a.page-numbers:hover {
	background: var(--gray-bg);
	border-color: var(--border);
}

.pagination span.page-numbers.current {
	background: var(--green);
	border-color: var(--green);
	color: var(--white);
}

.pagination span.page-numbers.dots {
	border: none;
	background: transparent;
	min-width: auto;
	padding: 0 4px;
}

/* ===== 404 ===== */

.page__main--404 {
	display: flex;
	flex-direction: column;
}

.error-404 {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 40px 0 80px;
	min-height: 50vh;
}

.error-404__code {
	font-size: 72px;
	font-weight: 600;
	line-height: 1;
	color: var(--green);
	opacity: .35;
	margin-bottom: 10px;
}

.error-404__title {
	font-size: 22px;
	font-weight: 500;
	color: var(--text);
	margin-bottom: 12px;
}

.error-404__text {
	font-size: 14px;
	line-height: 1.5;
	color: var(--text-muted);
	max-width: 420px;
	margin-bottom: 30px;
}

.error-404__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

@media (min-width: 768px) {
	.catalog-categories__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px;
	}

	.catalog-category-tile__img,
	.catalog-category-tile__placeholder {
		height: 160px;
	}

	.catalog-category-tile__name {
		font-size: 14px;
	}

	.error-404__code {
		font-size: 120px;
	}

	.error-404__title {
		font-size: 32px;
	}

	.error-404__text {
		font-size: 16px;
	}

	.error-404__actions {
		flex-direction: row;
		justify-content: center;
	}
}

@media (min-width: 1024px) {
	.catalog-page {
		margin-bottom: 150px;
	}

	.catalog-page__title,
	.catalog-categories__title,
	.catalog-products__title {
		font-size: 32px;
		margin-bottom: 40px;
	}

	.catalog-categories {
		margin-bottom: 60px;
	}

	.catalog-categories__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 24px;
	}

	.catalog-category-tile__img,
	.catalog-category-tile__placeholder {
		height: 180px;
		border-radius: var(--r-md);
	}

	.catalog-category-tile__name {
		font-size: 16px;
	}

	.error-404 {
		padding: 80px 0 120px;
	}
}

/* Keep the quality label visually distinct from interactive buttons. */
.quality-section__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--green);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

@media (min-width: 768px) {
	.quality-section__badge {
		padding: 0;
		font-size: 14px;
	}
}
