:root {
				--ink: #171717;
				--muted: #777;
				--line: #d6d6d6;
				--panel: #ededed;
				--soft: #f6f6f5;
				--blue: #07548e;
				--pad: clamp(20px, 5.2vw, 100px);
			}

			* {
				box-sizing: border-box;
			}

			html {
				scroll-behavior: smooth;
			}

			body {
				margin: 0;
				color: var(--ink);
				background: #fff;
				font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
				font-weight: 300;
			}

			button,
			input {
				font: inherit;
			}

			button {
				cursor: pointer;
			}

			.site-header {
				height: 98px;
				padding: 0 var(--pad);
				background: #626262;
				display: flex;
				align-items: center;
				justify-content: space-between;
				color: #fff;
			}

			.brand-button,
			.nav-button,
			.contact-button,
			.menu-button {
				border: 0;
				background: transparent;
				color: inherit;
			}

			.brand-button {
				padding: 0;
			}

			.brand-logo {
				display: block;
				width: 103px;
				height: auto;
			}

			.nav-list {
				display: flex;
				align-items: center;
				gap: 62px;
			}

			.nav-button {
				font-size: 21px;
				padding: 10px 0;
			}

			.nav-button:hover,
			.nav-button:focus-visible {
				opacity: .65;
			}

			.nav-item--products {
				position: static;
			}

			.nav-trigger {
				display: inline-flex;
				align-items: center;
				gap: 8px;
			}

			.nav-trigger svg {
				width: 14px;
				height: 14px;
				fill: none;
				stroke: currentColor;
				stroke-width: 1.7;
				transition: transform .18s ease;
			}

			.nav-item--products.is-open .nav-trigger svg {
				transform: rotate(180deg);
			}

			.mega-menu {
				position: fixed;
				top: 98px;
				left: 0;
				right: 0;
				display: none;
				grid-template-columns: 1.08fr 1fr 1.28fr;
				gap: clamp(36px, 7vw, 140px);
				padding: 30px max(24px, calc((100vw - 1500px) / 2)) 36px;
				background: #fff;
				color: #202020;
				box-shadow: 0 12px 18px rgba(0, 0, 0, .1);
				border-top: 1px solid #ededed;
				z-index: 20;
			}

			.nav-item--products:hover .mega-menu,
			.nav-item--products:focus-within .mega-menu,
			.nav-item--products.is-open .mega-menu {
				display: grid;
			}

			.menu-column {
				min-width: 0;
			}

			.menu-group+.menu-group {
				margin-top: 27px;
			}

			.menu-group-title,
			.menu-heading {
				border: 0;
				background: transparent;
				color: #111;
				font-size: 20px;
				font-weight: 500;
				padding: 0 0 14px;
				text-align: left;
			}

			.menu-group-title::after {
				content: "→";
				margin-left: 10px;
				font-weight: 300;
			}

			.menu-links {
				display: grid;
				gap: 8px;
			}

			.menu-link {
				width: fit-content;
				max-width: 100%;
				border: 0;
				background: transparent;
				color: #404040;
				font-size: 15px;
				line-height: 1.45;
				padding: 3px 0;
				text-align: left;
				transition: color .18s ease, transform .18s ease;
			}

			.menu-link:hover,
			.menu-link:focus-visible,
			.menu-group-title:hover,
			.menu-group-title:focus-visible,
			.menu-heading:hover,
			.menu-heading:focus-visible {
				color: #000;
				outline: none;
			}

			.menu-link:hover,
			.menu-link:focus-visible {
				transform: translateX(4px);
			}

			.contact-button {
				width: 61px;
				height: 32px;
				border: 1px solid rgba(255, 255, 255, .8);
				border-radius: 8px;
				display: grid;
				place-items: center;
			}

			.contact-button svg {
				width: 21px;
				height: 21px;
				fill: none;
				stroke: currentColor;
				stroke-width: 1.6;
			}

			.menu-button {
				display: none;
				width: 44px;
				height: 44px;
				border: 1px solid rgba(255, 255, 255, .6);
				border-radius: 5px;
			}

			.menu-button span {
				display: block;
				width: 20px;
				height: 1px;
				background: currentColor;
				margin: 5px auto;
			}

			.banner {
				height: min(39vw, 560px);
				min-height: 350px;
				background: url("/public/static/img/banner/product.png") center / cover no-repeat;
				position: relative;
			}

			.banner-copy {
				position: absolute;
				left: clamp(28px, 5.2vw, 100px);
				bottom: clamp(42px, 7vw, 96px);
				z-index: 1;
				color: #383838;
			}

			.banner-title {
				margin: 0;
				font-size: clamp(36px, 4vw, 60px);
				line-height: 1.2;
				font-weight: 300;
				letter-spacing: .04em;
			}

			.banner-subtitle {
				margin: 12px 0 20px;
				font-size: clamp(18px, 1.8vw, 27px);
				line-height: 1.3;
				font-weight: 300;
			}

			.banner-action {
				width: 106px;
				height: 28px;
				padding: 0 12px;
				border: 1px solid #383838;
				border-radius: 6px;
				background: rgba(255, 255, 255, .1);
				color: #383838;
			}

			.banner-action svg {
				width: 82px;
				height: 14px;
				fill: none;
				stroke: currentColor;
				stroke-width: 1.2;
			}

			.banner::after {
				content: "";
				position: absolute;
				inset: 0;
				background: linear-gradient(90deg, rgba(255, 255, 255, .18), transparent 60%);
				pointer-events: none;
			}

			.catalog-shell {
				max-width: 1600px;
				margin: 0 auto;
				display: grid;
				grid-template-columns: 256px minmax(0, 1fr);
				gap: 16px;
				padding: 20px 12px 72px;
				background: #fff;
			}

			.filters {
				background: var(--panel);
				align-self: start;
			}

			.filter-options {
				display: grid;
				padding: 14px 16px;
				gap: 6px;
			}

			.filter-link {
				display: block;
				padding: 4px 0;
				color: #454545;
				text-align: left;
				text-decoration: none;
			}

			.filter-link:hover,
			.filter-link:focus-visible,
			.filter-link.is-active {
				color: var(--blue);
			}

			.catalog-main {
				min-width: 0;
			}

			.search-row {
				display: flex;
				align-items: center;
				gap: 28px;
				padding-bottom: 30px;
			}

			.search-box {
				flex: 1;
				position: relative;
			}

			.search-input {
				width: 100%;
				height: 42px;
				padding: 0 44px 0 14px;
				border: 1px solid #c8c8c8;
				background: #f7f7f7;
				color: var(--ink);
			}

			.search-input:focus {
				outline: 1px solid var(--blue);
				border-color: var(--blue);
			}

			.search-submit {
				position: absolute;
				right: 11px;
				top: 10px;
				padding: 0;
				border: 0;
				background: transparent;
				color: #333;
			}

			.search-submit svg {
				width: 20px;
				height: 20px;
				fill: none;
				stroke: currentColor;
				stroke-width: 1.6;
			}

			.result-count {
				margin: 20px 0 58px;
				color: var(--blue);
				font-size: 14px;
			}

			.product-grid {
				display: grid;
				grid-template-columns: repeat(3, minmax(0, 1fr));
				gap: 30px;
			}

			.product-card {
				min-width: 0;
				background: var(--panel);
				display: flex;
				flex-direction: column;
			}

			.product-image {
				width: 100%;
				aspect-ratio: 1.45;
				object-fit: cover;
				display: block;
			}

			.product-content {
				/* min-height: 305px; */
				padding: 17px 16px 14px;
				display: flex;
				flex-direction: column;
			}

			.product-title {
				margin: 0;
				min-height: 67px;
				font-size: 21px;
				line-height: 1.35;
				font-weight: 400;
			}

			.product-description {
				margin: 26px 0 20px;
				font-size: 16px;
				line-height: 1.65;
			}

			.product-arrow {
				margin-top: auto;
				align-self: flex-end;
				border: 0;
				background: transparent;
				color: var(--blue);
				padding: 4px 0 0;
			}

			.product-arrow svg {
				width: 24px;
				height: 18px;
				fill: none;
				stroke: currentColor;
				stroke-width: 1.5;
			}

			.empty-state {
				display: none;
				padding: 60px 20px;
				text-align: center;
				color: var(--muted);
				background: var(--soft);
			}

			.empty-state.is-visible {
				display: block;
			}

			@media (max-width: 850px) {
				.site-header {
					height: 70px;
					padding: 0 20px;
				}

				.brand-logo {
					width: 77px;
				}

				.nav-list {
					display: none;
				}

				.nav-list.is-open {
					position: absolute;
					top: 70px;
					left: 0;
					right: 0;
					display: grid;
					gap: 0;
					padding: 10px 20px 16px;
					background: #626262;
					z-index: 10;
				}

				.nav-item--products {
					width: 100%;
				}

				.nav-trigger {
					justify-content: space-between;
				}

				.mega-menu {
					position: static;
					grid-template-columns: 1fr;
					gap: 18px;
					padding: 14px 0 12px 16px;
					background: rgba(0, 0, 0, .08);
					box-shadow: none;
					border-top: 1px solid rgba(255, 255, 255, .18);
				}

				.nav-item--products .mega-menu {
					display: none;
				}

				.nav-item--products:hover .mega-menu {
					display: none;
				}

				.nav-item--products.is-open .mega-menu {
					display: grid;
				}

				.menu-group+.menu-group {
					margin-top: 0;
				}

				.menu-group-title,
				.menu-heading,
				.menu-link {
					color: #fff;
				}

				.menu-group-title,
				.menu-heading {
					font-size: 16px;
					padding-bottom: 6px;
				}

				.menu-links {
					gap: 3px;
				}

				.menu-link {
					font-size: 14px;
				}

				.nav-button {
					width: 100%;
					text-align: left;
					font-size: 17px;
					padding: 12px 0;
				}

				.contact-button {
					display: none;
				}

				.menu-button {
					display: block;
				}

				.banner {
					height: 49vw;
					min-height: 220px;
				}

				.catalog-shell {
					display: block;
					padding: 12px 12px 48px;
				}

				.filters {
					display: block;
					margin-bottom: 14px;
				}

				.search-row {
					gap: 8px;
				}

				.result-count {
					margin: 15px 0 30px;
				}

				.product-grid {
					grid-template-columns: repeat(2, minmax(0, 1fr));
					gap: 14px;
				}

				.product-content {
					min-height: 250px;
					padding: 13px 12px 11px;
				}

				.product-title {
					min-height: 55px;
					font-size: 17px;
				}

				.product-description {
					margin: 17px 0 13px;
					font-size: 13px;
					line-height: 1.55;
				}
			}

			@media (max-width: 520px) {
				.product-grid {
					grid-template-columns: 1fr;
				}

				.product-image {
					aspect-ratio: 1.65;
				}

				.product-content {
					min-height: 205px;
				}

				.product-title {
					min-height: 0;
				}
			}