:root {
	--color-black: #000000;
	--color-red: #bf0007;
	--color-red-dark: #99000a;
	--color-gray-bg: #e7e7e7;
	--color-gray-line: #d6d6d6;
	--color-text: #1a1a1a;
	--color-text-sub: #555555;
	--color-white: #ffffff;
	--font-base: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	--container-width: 1200px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-base);
	color: var(--color-text);
	font-size: 15px;
	line-height: 1.8;
	background: var(--color-white);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

a {
	color: inherit;
	text-decoration: none;
}

ul { list-style: none; margin: 0; padding: 0; }

h1, h2, h3, p { margin: 0; }

.container {
	max-width: var(--container-width);
	margin: 0 auto;
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 14px 28px;
	font-size: 14px;
	font-weight: 700;
	border: 1px solid transparent;
	border-radius: 2px;
	white-space: nowrap;
}
.btn--red { background: var(--color-red); color: var(--color-white); }
.btn--red:hover { background: var(--color-red-dark); }
.btn--outline { background: transparent; color: var(--color-white); border-color: var(--color-white); }
.btn--outline:hover { background: rgba(255,255,255,0.1); }
.btn--white { background: var(--color-white); color: var(--color-red); }
.btn__icon {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.btn__icon svg { width: 16px; height: 16px; }
.btn--white .btn__icon { background: var(--color-red); color: var(--color-white); }
.btn--red .btn__icon { background: var(--color-white); color: var(--color-red); }
.btn--outline .btn__icon { background: var(--color-white); color: var(--color-red); }

.link-more {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-text);
}

.section-heading {
	font-size: 24px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}
.section-heading span {
	color: var(--color-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
}
.section-heading--inline {
	flex-direction: row;
	align-items: baseline;
	gap: 12px;
	text-align: left;
	margin-bottom: 0;
}

.hero {
	position: relative;
	background: var(--color-black);
	color: var(--color-white);
	min-height: 480px;
	padding-top: 72px;
	padding-bottom: 32px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}
.hero__bg-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.55) 100%);
}
.hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 60px 20px 40px;
	width: 100%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.hero__copy {
	order: 0;
	text-align: left;
	width: 508px;
	max-width: 100%;
	background: rgba(0, 0, 0, 0.2);
	padding: 20px 24px;
	border-radius: 6px;
	margin-bottom: 20px;
}
.hero__title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.3;
	margin-bottom: 10px;
	text-shadow: 0 0 8px rgba(0, 0, 0, 0.55), 0 0 16px rgba(0, 0, 0, 0.35);
}
.hero__lead {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
	margin-bottom: 12px;
	text-shadow: 0 0 8px rgba(0, 0, 0, 0.55), 0 0 16px rgba(0, 0, 0, 0.35);
}
.hero__text {
	font-size: 14.5px;
	color: #fff;
	line-height: 1.8;
	text-shadow: 0 0 6px rgba(0, 0, 0, 0.55), 0 0 12px rgba(0, 0, 0, 0.35);
}
.hero__actions {
	order: 0;
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	width: 508px;
	max-width: 100%;
}
.hero__actions .btn--outline {
	background: rgba(0, 0, 0, 0.2);
	border-color: rgba(255, 255, 255, 0.6);
}
.hero__actions .btn--outline:hover {
	background: rgba(0, 0, 0, 0.35);
}

.purpose {
	background: #f5f5f5;
	padding: 48px 0;
}
.purpose__heading {
	text-align: center;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 32px;
	display: flex;
	align-items: center;
	gap: 20px;
}
.purpose__heading::before,
.purpose__heading::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #b7b7b7;
}
.purpose__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.purpose__card {
	position: relative;
	background: var(--color-white);
	padding: 14px;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	transition: box-shadow 0.2s;
}
.purpose__card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.purpose__icon {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--color-gray-line);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-white);
	flex-shrink: 0;
	align-self: center;
}
.purpose__icon svg { width: 40px; height: 40px; }
.purpose__icon--red { background: var(--color-red); }
.purpose__icon--navy { background: #17264d; }
.purpose__icon--orange { background: #f3b638; }
.purpose__icon--green { background: #075b12; }
.purpose__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.purpose__title {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	min-height: 42px;
	margin: 0;
}
.purpose__text {
	font-size: 12px;
	color: var(--color-text-sub);
	margin-top: 2px;
	padding-right: 14px;
}
.purpose__arrow {
	position: absolute;
	right: 14px;
	bottom: 14px;
	color: var(--color-red);
	font-weight: 700;
}

.popular { background: var(--color-white); padding: 64px 0; }
.popular__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 8px;
}
.popular__lead {
	font-size: 13px;
	color: var(--color-text-sub);
	margin-bottom: 24px;
}
.popular__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 16px;
}
.popular__card {
	display: flex;
	flex-direction: column;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	overflow: hidden;
	transition: box-shadow 0.2s;
}
.popular__card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.popular__thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.popular__thumb svg {
	width: 40px;
	height: 40px;
	color: var(--color-text-sub);
}
.popular__thumb--photo svg { display: none; }
.popular__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--color-red-dark);
	color: var(--color-white);
	font-size: 10px;
	font-weight: 700;
	line-height: 1.4;
	padding: 3px 8px;
	border-radius: 3px;
}
.popular__badge--new { background: var(--color-black); }
.popular__title {
	flex: 1 0 auto;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	padding: 10px 10px 6px;
}
.popular__price {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-red);
	text-align: center;
	padding: 0 10px 14px;
}
.popular__price small {
	font-size: 10px;
	font-weight: 400;
	color: var(--color-text-sub);
	margin-left: 2px;
}

.business { background: #ffffff; padding: 64px 0; }
.business__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	align-items: start;
}
.business__slot { position: relative; }
.business__card {
	display: block;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	overflow: hidden;
	position: relative;
	width: 100%;
	transition: box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (hover: hover) {

	.business__card:hover {
		overflow: visible;
		z-index: 20;
		box-shadow: 0 20px 45px rgba(0,0,0,0.22);
		transform: scale(1.05);
		border-bottom-color: transparent;
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
	.business__slot:first-child .business__card:hover { transform-origin: left top; }
	.business__slot:last-child .business__card:hover { transform-origin: right top; }

	.business__thumb { border-top-left-radius: 5px; border-top-right-radius: 5px; }
}
.business__thumb-wrap {
	position: relative;
}
.business__thumb {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-color: var(--color-gray-bg);
}
.business__icon {
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translate(-50%, 50%);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-black);
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.business__icon svg { width: 22px; height: 22px; }
.business__title {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	padding: 32px 16px 8px;
	min-height: 80px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	text-align: center;
}
.business__text {
	font-size: 12px;
	color: var(--color-text-sub);
	padding: 0 16px 20px;
}
.business__text-more-wrap {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
}
.business__text-more-wrap .business__text { padding-top: 0; }
.business__more-toggle {
	display: none;
	width: 100%;
	background: none;
	border: none;
	border-top: 1px solid var(--color-gray-line);
	color: var(--color-red);
	font-size: 11px;
	font-weight: 700;
	padding: 8px 16px;
	cursor: pointer;
	text-align: center;
}
@media (hover: hover) {

	.business__text-more-wrap {
		position: absolute;
		top: 100%;
		left: -1px;
		right: -1px;
		background: var(--color-white);
		border: 1px solid var(--color-gray-line);
		border-top: none;
		border-radius: 0 0 5px 5px;
		box-shadow: 0 20px 45px rgba(0,0,0,0.22);
		z-index: 1;
		transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.45s cubic-bezier(0.4, 0, 0.2, 1);
	}
	.business__card:hover .business__text-more-wrap {
		max-height: 300px;
		opacity: 1;
		transition-delay: 0.12s;
	}
	.business__text-more-wrap .business__text { padding-top: 12px; padding-bottom: 20px; }
}
@media (hover: none) {
	.business__text-more-wrap { transition: max-height 0.3s ease; }
	.business__more-toggle { display: block; }
	.business__text-wrap.is-expanded .business__text-more-wrap {
		max-height: 300px;
		opacity: 1;
	}
}

.stats {
	background: var(--color-black);
	color: var(--color-white);
	padding: 32px 0;
}
.stats__heading {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 24px;
}
.stats__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
}
.stats__label {
	font-size: 14px;
	color: #ffffff;
	font-weight: 600;
}
.stats__value-row {
	display: flex;
	align-items: center;
	gap: 8px;
}
.stats__icon {
	display: flex;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: var(--color-red);
}
.stats__icon svg { width: 100%; height: 100%; }
.stats__value {
	font-size: 26px;
	font-weight: 700;
}
.stats__value span {
	font-size: 13px;
	font-weight: 500;
	margin-left: 4px;
}
.stats__note {
	font-size: 10px;
	color: #999;
	margin-top: 6px;
}

.case-study { background: #ffffff; padding: 56px 0; }
.case-study__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 24px;
}
.case-study__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
}
.case-study__logo {
	border: 1px solid var(--color-gray-line);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	aspect-ratio: 230 / 115;
}
.case-study__logo img {
	max-width: 100%;
	max-height: 48px;
	width: auto;
	height: auto;
	object-fit: contain;
}

.info-columns { background: #ffffff; padding-bottom: 56px; }
.info-columns__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border: 1px solid var(--color-gray-line);
}
.info-columns__col {
	display: flex;
	flex-direction: column;
	padding: 24px;
}
.info-columns__col:not(:last-child) {
	border-right: 1px solid var(--color-gray-line);
}
.info-columns__heading {
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 16px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.info-columns__heading span {
	color: var(--color-red);
	font-size: 11px;
	font-weight: 700;
}
.info-columns__photo {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-color: var(--color-gray-bg);
	margin-bottom: 12px;
}
.info-columns__text {
	font-size: 12px;
	color: var(--color-text-sub);
	margin-bottom: 12px;
}
.info-columns__list li {
	border-bottom: 1px solid var(--color-gray-line);
	padding: 12px 0;
}
.info-columns__list li:first-child { padding-top: 0; }
.info-columns__list--thumb li a {
	display: flex;
	gap: 10px;
	align-items: flex-start;
}
.info-columns__thumb {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
	background-size: cover;
	background-position: center;
	background-color: var(--color-gray-bg);
}
.info-columns__body { min-width: 0; }
.info-columns__title {
	display: block;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: 4px;
}
.info-columns__date {
	font-size: 11px;
	color: #999;
	display: flex;
	align-items: center;
	gap: 8px;
}
.info-columns__date .tag {
	font-style: normal;
	background: var(--color-red);
	color: var(--color-white);
	font-size: 10px;
	padding: 2px 6px;
	border-radius: 2px;
}
.info-columns__col .link-more { margin-top: auto; padding-top: 12px; display: inline-block; }
.info-columns__empty {
	color: var(--color-text-sub);
	font-size: 13px;
	line-height: 1.8;
	padding: 12px 0;
}

.page-header {
	background: var(--color-gray-bg);
	padding: 40px 0;
}
.page-header__label {
	color: var(--color-red);
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 8px;
}
.page-header__title { font-size: 26px; font-weight: 700; }
.page-header__date { font-size: 12px; color: var(--color-text-sub); margin-top: 8px; }

.page-content { padding: 48px 0; max-width: 840px; }
.entry-content { font-size: 15px; line-height: 1.9; }
.entry-thumb { margin-bottom: 24px; }

.archive-list__item {
	border-bottom: 1px solid var(--color-gray-line);
}
.archive-list__item a {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 20px 4px;
	font-size: 14px;
}
.archive-list__item a:hover .archive-list__title { color: var(--color-red); }
.archive-list__date { color: #999; font-size: 12px; flex-shrink: 0; }
.archive-list__body { flex: 1; min-width: 0; }
.archive-list__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 6px;
}
.archive-list__title {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
}
.archive-list__excerpt {
	font-size: 12px;
	color: var(--color-text-sub);
	line-height: 1.7;
	margin-top: 6px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.archive-list__badge {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	color: var(--color-white);
	padding: 2px 8px;
	border-radius: 2px;
	flex-shrink: 0;
}
.archive-list__badge--red { background: var(--color-red); }
.archive-list__badge--blue { background: #3b82c4; }
.archive-list__badge--green { background: #4a9a6a; }
.archive-list__badge--orange { background: #d98a3d; }
.archive-list__badge--gray { background: #888888; }
.archive-list__arrow {
	flex-shrink: 0;
	color: var(--color-text-sub);
	display: flex;
}
.archive-list__arrow svg { width: 18px; height: 18px; }
.archive-list__thumb {
	width: 120px;
	height: 84px;
	flex-shrink: 0;
	background-size: cover;
	background-position: center;
	background-color: var(--color-gray-bg);
}
.archive-list--thumb .archive-list__item a { align-items: flex-start; }
@media (max-width: 600px) {
	.archive-list__thumb { width: 84px; height: 64px; }
	.archive-list__excerpt { display: none; }
}

.breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--color-text-sub);
	margin-bottom: 20px;
}
.breadcrumb a { color: var(--color-text-sub); }
.breadcrumb a:hover { color: var(--color-red); }
.page-breadcrumb { padding: 32px 0 0; }

.products-search { border-bottom: 1px solid var(--color-gray-line); background: #fafafa; }
.products-search__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 40px 0;
}
.products-search__heading {
	font-size: 20px;
	font-weight: 700;
}
.products-search__form {
	position: relative;
	width: 100%;
	max-width: 640px;
}
.products-search__input {
	width: 100%;
	padding: 14px 56px 14px 20px;
	font-size: 14px;
	border: 1px solid var(--color-gray-line);
	border-radius: 24px;
	background: var(--color-white);
}
.products-search__submit {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	line-height: 1;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}
.products-search__submit svg { width: 20px; height: 20px; }

.products-main { padding: 56px 0; }
.products-main__grid {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 48px;
	align-items: start;
}
.products-main__grid--full { grid-template-columns: 1fr; }

.products-sidebar__block { margin-bottom: 32px; }
.products-sidebar__heading {
	font-size: 15px;
	font-weight: 700;
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 2px solid var(--color-black);
}
.products-sidebar__categories li { border-bottom: 1px solid var(--color-gray-line); }
.products-sidebar__categories a {
	display: block;
	padding: 12px 4px;
	font-size: 13px;
}
.products-sidebar__categories a:hover { color: var(--color-red); }
.products-sidebar__categories a.is-active {
	color: var(--color-red);
	font-weight: 700;
}
.products-sidebar__promo {
	display: block;
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	overflow: hidden;
}
.products-sidebar__promo-photo {
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.products-sidebar__promo-body { padding: 16px; }
.products-sidebar__promo-title {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.6;
	margin-bottom: 8px;
}

.products-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.products-grid--4col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.products-grid__card {
	position: relative;
	display: block;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	overflow: hidden;
	transition: box-shadow 0.2s;
}
.products-grid__card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.products-grid__photo {
	aspect-ratio: 16 / 10;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.products-grid__body { padding: 16px 32px 16px 16px; }
.products-grid__title {
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 6px;
}
.products-grid__desc {
	font-size: 12px;
	color: var(--color-text-sub);
	line-height: 1.6;
}
.products-grid__arrow {
	position: absolute;
	right: 14px;
	bottom: 14px;
	color: var(--color-red);
	font-weight: 700;
}

.products-help { background: #f5f5f5; padding: 56px 0; }
.products-help__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.products-help__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	padding: 28px 16px;
	text-align: center;
	transition: box-shadow 0.2s;
}
.products-help__item:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.products-help__icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.products-help__icon svg { width: 26px; height: 26px; }
.products-help__title {
	font-size: 13px;
	font-weight: 700;
}
.products-help__desc {
	font-size: 11px;
	color: var(--color-text-sub);
	line-height: 1.6;
}
.products-help__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.products-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 20px;
}
.products-toolbar__count { font-size: 14px; font-weight: 700; }
.products-toolbar__controls {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.products-toolbar__select-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--color-text-sub);
}
.products-toolbar__select {
	padding: 6px 10px;
	font-size: 12px;
	border: 1px solid var(--color-gray-line);
	border-radius: 3px;
	background: var(--color-white);
	color: var(--color-text);
}
.products-toolbar__view {
	display: flex;
	gap: 4px;
	border: 1px solid var(--color-gray-line);
	border-radius: 3px;
	overflow: hidden;
}
.products-toolbar__view-btn {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-sub);
	background: var(--color-white);
}
.products-toolbar__view-btn svg { width: 16px; height: 16px; }
.products-toolbar__view-btn.is-active { background: var(--color-text); color: var(--color-white); }

.product-list__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.products-search__empty {
	padding: 60px 20px;
	text-align: center;
	color: var(--color-text-sub);
	font-size: 15px;
	line-height: 1.8;
}

.document-download-main { padding: 56px 0; }
.document-download-empty {
	padding: 60px 20px;
	text-align: center;
	color: var(--color-text-sub);
	font-size: 15px;
	line-height: 1.8;
}
.product-card {
	display: block;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	overflow: hidden;
	transition: box-shadow 0.2s;
}
.product-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.product-card__photo {
	position: relative;
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.product-card__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--color-red-dark);
	color: var(--color-white);
	font-size: 10px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 3px;
}
.product-card__badge--new { background: var(--color-black); }
.product-card__body { padding: 14px; }
.product-card__title {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	margin-bottom: 6px;
}
.product-card__subtitle {
	font-size: 11px;
	color: var(--color-text-sub);
	line-height: 1.6;
	margin-bottom: 8px;
}
.product-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 10px;
}
.product-card__tag {
	font-size: 10px;
	color: var(--color-text-sub);
	background: var(--color-gray-bg);
	padding: 2px 8px;
	border-radius: 10px;
}
.product-card__price {
	font-size: 15px;
	font-weight: 700;
	color: var(--color-red);
}
.product-card__price small {
	font-size: 10px;
	font-weight: 500;
	color: var(--color-text-sub);
	margin-left: 4px;
}

.pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}
.pagination__item,
.pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 4px;
	border-radius: 50%;
	border: 1px solid var(--color-gray-line);
	font-size: 13px;
	color: var(--color-text);
}
.pagination__item.is-active,
.pagination .page-numbers.current {
	background: var(--color-red);
	border-color: var(--color-red);
	color: var(--color-white);
}
.pagination__item--next svg,
.pagination .next svg { width: 14px; height: 14px; }

.btn--outline-black {
	background: var(--color-white);
	color: var(--color-text);
	border-color: var(--color-gray-line);
}
.btn--outline-black:hover { background: var(--color-gray-bg); }
.btn--outline-black .btn__icon { background: var(--color-gray-bg); color: var(--color-text); }

.product-detail-wrap { padding: 32px 0 0; }

.product-detail {
	display: grid;
	grid-template-columns: 480px 1fr;
	gap: 56px;
	padding-bottom: 56px;
}

.product-detail__main-photo {
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
	border-radius: 6px;
	margin-bottom: 16px;
}
.product-detail__thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.product-detail__thumb {
	appearance: none;
	padding: 0;
	aspect-ratio: 1 / 1;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
	border: 2px solid var(--color-gray-line);
	border-radius: 4px;
	cursor: pointer;
}
.product-detail__thumb.is-active,
.product-detail__thumb:hover { border-color: var(--color-red); }

.product-detail__badge {
	display: inline-block;
	background: var(--color-red);
	color: var(--color-white);
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 2px;
	margin-bottom: 12px;
}
.product-detail__title {
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 10px;
}
.product-detail__lead {
	font-size: 14px;
	color: var(--color-text-sub);
	margin-bottom: 20px;
}
.product-detail__price-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 16px;
}
.product-detail__msrp {
	font-size: 13px;
	color: var(--color-red);
}
.product-detail__price {
	font-size: 30px;
	font-weight: 700;
	color: var(--color-red);
}
.product-detail__price small {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-sub);
	margin-left: 6px;
}
.product-detail__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}
.product-detail__tags li {
	font-size: 12px;
	font-weight: 700;
	color: var(--color-text-sub);
	background: var(--color-gray-bg);
	padding: 6px 14px;
	border-radius: 20px;
}
.product-detail__tags li a {
	color: inherit;
	text-decoration: none;
}
.product-detail__tags li:hover {
	background: var(--color-red);
}
.product-detail__tags li:hover a {
	color: var(--color-white);
}
.product-detail__actions {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.product-detail__actions .btn { justify-content: center; }

.product-description { background: #f5f5f5; padding: 56px 0; }
.product-description__body {
	font-size: 14px;
	color: var(--color-text-sub);
	line-height: 1.8;
}

.product-tables {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 56px;
	padding: 56px 0;
}
.product-tables--single {
	grid-template-columns: 1fr;
}
.product-tables__heading {
	font-size: 17px;
	font-weight: 700;
	padding-bottom: 12px;
	margin-bottom: 16px;
	border-bottom: 2px solid var(--color-black);
}
.product-set-table {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 24px;
	margin-bottom: 16px;
}
.product-set-table__col li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	padding: 12px 4px;
	border-bottom: 1px solid var(--color-gray-line);
}
.product-set-table__col li span:last-child { color: var(--color-text-sub); }

.product-spec-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 16px;
}
.product-spec-table tr { border-bottom: 1px solid var(--color-gray-line); }
.product-spec-table th,
.product-spec-table td {
	text-align: left;
	font-weight: 400;
	font-size: 13px;
	padding: 14px 16px;
	vertical-align: top;
}
.product-spec-table th {
	width: 130px;
	font-weight: 700;
	background: var(--color-gray-bg);
	white-space: nowrap;
}
.product-tables__note {
	font-size: 11px;
	color: var(--color-text-sub);
}

.related-products { padding-bottom: 64px; }
.related-products__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 24px;
}
.related-products__viewport { position: relative; }
.related-products__list {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(200px, 1fr);
	gap: 20px;
	overflow-x: auto;
	scroll-behavior: smooth;
	padding-bottom: 4px;
}
.related-products__card a { display: block; }
.related-products__photo {
	position: relative;
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
	border-radius: 5px;
	margin-bottom: 10px;
	border: 1px solid var(--color-gray-line);
}
.related-products__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	background: var(--color-red);
	color: var(--color-white);
	font-size: 11px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 2px;
}
.related-products__title {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 4px;
}
.related-products__price {
	font-size: 14px;
	font-weight: 700;
	color: var(--color-red);
}
.related-products__price small {
	font-size: 11px;
	font-weight: 500;
	color: var(--color-text-sub);
	margin-left: 4px;
}
.related-products__nav {
	position: absolute;
	top: 50%;
	right: -20px;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	box-shadow: 0 2px 8px rgba(0,0,0,0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.related-products__nav svg { width: 18px; height: 18px; }

.about-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.about-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.about-hero__inner { position: relative; z-index: 1; width: 100%; }
.about-hero__body { max-width: 420px; }
.about-hero__title {
	font-size: 34px;
	font-weight: 700;
	margin-bottom: 20px;
}
.about-hero__label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.about-hero__desc {
	font-size: 14px;
	color: var(--color-text-sub);
	line-height: 1.9;
}

.about-hub { padding: 64px 0; }
.about-hub__heading {
	text-align: center;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 18px;
}
.about-hub__heading-rule {
	width: 32px;
	height: 2px;
	background: var(--color-red);
	margin: 0 auto 20px;
}
.about-hub__lead {
	text-align: center;
	font-size: 13px;
	color: var(--color-text-sub);
	line-height: 1.9;
	margin-bottom: 40px;
}
.about-hub__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.about-hub__card {
	display: block;
	border: 1px solid var(--color-gray-line);
	border-radius: 6px;
	overflow: hidden;
	background: var(--color-white);
	transition: box-shadow 0.2s;
}
.about-hub__card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.about-hub__photo {
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.about-hub__body { position: relative; padding: 20px 20px 26px; }
.about-hub__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.about-hub__icon {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(191, 0, 7, 0.08);
	color: var(--color-red);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.about-hub__icon svg { width: 16px; height: 16px; }
.about-hub__title { font-size: 15px; font-weight: 700; }
.about-hub__desc { font-size: 12px; color: var(--color-text-sub); line-height: 1.8; }
.about-hub__grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.business-detail-section { padding: 56px 0; }
.business-detail-section--alt { background: var(--color-gray-bg); }
.business-detail-lead { max-width: 760px; margin: 0 auto; font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.business-detail-strengths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.business-detail-strengths--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.business-detail-strength {
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 6px;
	padding: 32px 24px;
	text-align: center;
}
.business-detail-strength__icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
}
.business-detail-strength__icon svg { width: 26px; height: 26px; }
.business-detail-strength__title { font-size: 15px; font-weight: 700; margin-bottom: 12px; }
.business-detail-strength__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.8; }

.business-detail-strength--photo { text-align: left; padding: 0; overflow: hidden; }
.business-detail-strength__photo {
	aspect-ratio: 16 / 9;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.business-detail-strength--photo .business-detail-strength__title,
.business-detail-strength--photo .business-detail-strength__desc { padding-left: 20px; padding-right: 20px; }
.business-detail-strength--photo .business-detail-strength__title { margin-top: 20px; }
.business-detail-strength--photo .business-detail-strength__desc { padding-bottom: 20px; }

.business-detail-subheading { font-size: 16px; font-weight: 700; text-align: center; margin-bottom: 24px; }

.business-detail-feature-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 32px;
	max-width: 720px;
	margin: 0 auto;
}
.business-detail-feature-list li {
	position: relative;
	padding-left: 20px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
}
.business-detail-feature-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 8px;
	width: 10px;
	height: 10px;
	background: var(--color-red);
}

.business-detail-channels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.business-detail-channel { background: var(--color-white); border: 1px solid var(--color-gray-line); border-radius: 6px; padding: 24px 20px; }
.business-detail-channel__title { font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.business-detail-channel__desc { font-size: 12px; color: var(--color-text-sub); line-height: 1.7; }
.business-detail-channel--photo { padding: 0; overflow: hidden; }
.business-detail-channel__photo {
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.business-detail-channel--photo .business-detail-channel__title,
.business-detail-channel--photo .business-detail-channel__desc { padding-left: 18px; padding-right: 18px; }
.business-detail-channel--photo .business-detail-channel__title { margin-top: 16px; }
.business-detail-channel--photo .business-detail-channel__desc { padding-bottom: 18px; }
.business-detail-channel__icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
}
.business-detail-channel__icon svg { width: 20px; height: 20px; }

.business-detail-achievements { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 32px; }
.business-detail-achievement { background: var(--color-white); border: 1px solid var(--color-gray-line); border-radius: 6px; padding: 28px 20px; text-align: center; }
.business-detail-achievement__icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
}
.business-detail-achievement__icon svg { width: 22px; height: 22px; }
.business-detail-achievement__text { font-size: 16px; font-weight: 700; line-height: 1.7; }

.business-detail-store-links { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.business-detail-store-links--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.business-detail-store-links--grid .btn { width: 100%; justify-content: space-between; white-space: normal; }

.business-detail-showroom { display: flex; align-items: center; gap: 48px; }
.business-detail-showroom__photo {
	flex: 1 1 45%;
	min-height: 300px;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.business-detail-showroom__body { flex: 1 1 55%; }
.business-detail-showroom__label { font-size: 12px; font-weight: 700; letter-spacing: 0.05em; color: var(--color-red); margin-bottom: 12px; display: block; }
.business-detail-showroom__title { font-size: 22px; font-weight: 700; margin-bottom: 16px; line-height: 1.5; }
.business-detail-showroom__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; }

.business-detail-faq { max-width: 760px; margin: 0 auto; }
.business-detail-faq__item { border-bottom: 1px solid var(--color-gray-line); padding: 24px 0; }
.business-detail-faq__item:first-child { padding-top: 0; }
.business-detail-faq__q { display: flex; gap: 12px; font-size: 15px; font-weight: 700; margin-bottom: 12px; }
.business-detail-faq__q-mark { color: var(--color-red); flex-shrink: 0; }
.business-detail-faq__a { display: flex; gap: 12px; font-size: 13px; color: var(--color-text-sub); line-height: 1.8; }
.business-detail-faq__a-mark { color: var(--color-text-sub); font-weight: 700; flex-shrink: 0; }

.business-detail-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.business-detail-step { display: flex; align-items: flex-start; gap: 18px; background: var(--color-white); border: 1px solid var(--color-gray-line); border-radius: 6px; padding: 24px; }
.business-detail-step__num {
	flex-shrink: 0;
	font-size: 30px;
	font-weight: 700;
	color: var(--color-red);
	line-height: 1;
	min-width: 32px;
}
.business-detail-step__body { flex: 1; min-width: 0; }
.business-detail-step__title { font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.business-detail-step__desc { font-size: 12px; color: var(--color-text-sub); line-height: 1.7; }

.business-detail-targets { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.business-detail-target { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.business-detail-target__icon {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(191, 0, 7, 0.08);
	color: var(--color-red);
	display: flex;
	align-items: center;
	justify-content: center;
}
.business-detail-target__icon svg { width: 24px; height: 24px; }
.business-detail-target__label { font-size: 12px; font-weight: 700; }

@media (max-width: 1024px) {
	.about-hub__grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.business-detail-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.business-detail-targets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.business-detail-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 782px) {
	.business-detail-section { padding: 40px 0; }
	.about-hub__grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.business-detail-strengths { grid-template-columns: 1fr; }
	.business-detail-strengths--2col { grid-template-columns: 1fr; }
	.business-detail-channels { grid-template-columns: 1fr; }
	.business-detail-targets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.business-detail-steps { grid-template-columns: 1fr; }
	.business-detail-achievements { grid-template-columns: 1fr; }
	.business-detail-showroom { flex-direction: column; gap: 24px; }
	.business-detail-showroom__photo { width: 100%; min-height: 220px; }
	.business-detail-store-links--grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.about-hub__grid--5 { grid-template-columns: 1fr; }
}

.about-hero__rule { width: 40px; height: 2px; background: var(--color-red); margin: 6px 0 20px; }

.contact-main { padding: 64px 0; }

.contact-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 64px;
}
.contact-card {
	display: flex;
	flex-direction: column;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 6px;
	padding: 32px 24px;
	text-align: center;
}
.contact-card__icon {
	color: var(--color-red);
	margin-bottom: 20px;
	display: flex;
	justify-content: center;
}
.contact-card__icon svg { width: 44px; height: 44px; }
.contact-card__title { font-size: 16px; font-weight: 700; line-height: 1.5; margin-bottom: 10px; }
.contact-card__label { font-size: 13px; font-weight: 700; color: var(--color-red); margin-bottom: 16px; }
.contact-card__desc {
	font-size: 12.5px;
	color: var(--color-text-sub);
	line-height: 1.8;
	text-align: left;
	margin-bottom: 12px;
}
.contact-card__note {
	font-size: 11px;
	color: #999;
	line-height: 1.7;
	text-align: left;
	margin-bottom: 20px;
}
.contact-card__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	padding: 14px 18px;
	border: 1px solid var(--color-red);
	border-radius: 2px;
	color: var(--color-red);
	font-size: 13px;
	font-weight: 700;
	transition: background 0.2s, color 0.2s;
}
.contact-card__btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.contact-card__btn:hover { background: var(--color-red); color: var(--color-white); }

.contact-consult {
	display: flex;
	align-items: stretch;
	background: #fdf2f2;
	border-radius: 8px;
	overflow: hidden;
}
.contact-consult__text {
	flex: 1;
	padding: 48px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.contact-consult__title { font-size: 22px; font-weight: 700; margin-bottom: 10px; }
.contact-consult__rule { width: 32px; height: 2px; background: var(--color-red); margin-bottom: 18px; }
.contact-consult__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 24px; }
.contact-consult__photo {
	flex: 1;
	background-size: cover;
	background-position: center;
}

.about-hero__subheading { font-size: 18px; font-weight: 700; margin-bottom: 10px; }

.contact-form-section { padding: 64px 0; }
.contact-form-section__lead { text-align: center; font-size: 13px; color: var(--color-text-sub); margin-bottom: 36px; }

.contact-form {
	max-width: 720px;
	margin: 0 auto 32px;
	border: 1px solid var(--color-gray-line);
	border-radius: 8px;
	padding: 12px 40px;
}
.contact-form__row {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding: 24px 0;
	border-bottom: 1px solid var(--color-gray-line);
}
.contact-form__row:last-child { border-bottom: none; }
.contact-form__label {
	flex: 0 0 160px;
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 700;
	padding-top: 12px;
}
.contact-form__required {
	background: var(--color-red);
	color: var(--color-white);
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 2px;
	flex-shrink: 0;
}
.contact-form__field { flex: 1; min-width: 0; }
.contact-form__input,
.contact-form__textarea {
	width: 100%;
	padding: 12px 16px;
	font-size: 14px;
	font-family: inherit;
	color: var(--color-text);
	border: 1px solid var(--color-gray-line);
	border-radius: 4px;
	background: var(--color-white);
}
.contact-form__textarea { min-height: 140px; resize: vertical; }

.contact-form__checklist { display: flex; flex-wrap: wrap; gap: 10px; }
.contact-form__check-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--color-gray-line);
	border-radius: 4px;
	font-size: 13px;
	cursor: pointer;
	transition: border-color 0.2s;
}
.contact-form__check-item:hover { border-color: var(--color-red); }
.contact-form__check-item input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--color-red);
	flex-shrink: 0;
}

.contact-form__other-detail { margin-top: 12px; }
.contact-form__other-detail[hidden] { display: none; }

.contact-form__input.has-error,
.contact-form__textarea.has-error { border-color: var(--color-red); }
.contact-form__error { display: block; color: var(--color-red); font-size: 12px; margin-top: 6px; }

.contact-confirm { max-width: 720px; margin: 0 auto; }
.contact-confirm__table { border-top: 1px solid var(--color-gray-line); margin-bottom: 32px; }
.contact-confirm__row { display: flex; padding: 16px 4px; border-bottom: 1px solid var(--color-gray-line); }
.contact-confirm__label { flex: 0 0 160px; font-weight: 700; font-size: 14px; }
.contact-confirm__value { flex: 1; min-width: 0; font-size: 14px; line-height: 1.8; white-space: pre-wrap; word-break: break-word; }
.contact-confirm__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.contact-confirm__actions .btn { min-width: 220px; justify-content: center; }
.contact-confirm__actions .btn--outline-black { border: 1px solid var(--color-gray-line); cursor: pointer; }

.contact-complete { max-width: 600px; margin: 0 auto; text-align: center; padding: 40px 0 64px; }
.contact-complete__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 24px;
}
.contact-complete__icon svg { width: 30px; height: 30px; }
.contact-complete__title { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.contact-complete__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 32px; }

@media (max-width: 600px) {
	.contact-confirm__row { flex-direction: column; gap: 6px; }
	.contact-confirm__actions { flex-direction: column; }
	.contact-confirm__actions .btn { width: 100%; }
}

.contact-form__submit-wrap { text-align: center; margin-bottom: 40px; }
.contact-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	max-width: 420px;
	padding: 16px 28px;
	background: var(--color-red);
	color: var(--color-white);
	border: none;
	border-radius: 4px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.contact-form__submit svg { width: 18px; height: 18px; flex-shrink: 0; }
.contact-form__submit:hover { background: var(--color-red-dark); }

.contact-form-phone {
	max-width: 720px;
	margin: 0 auto;
	background: var(--color-gray-bg);
	border-radius: 8px;
	padding: 28px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
}
.contact-form-phone__left { display: flex; align-items: center; gap: 16px; }
.contact-form-phone__icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.contact-form-phone__icon svg { width: 22px; height: 22px; }
.contact-form-phone__label { font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.contact-form-phone__number { font-size: 26px; font-weight: 700; }
.contact-form-phone__hours { font-size: 12px; color: var(--color-text-sub); line-height: 1.7; text-align: right; }
.contact-form-phone__note {
	flex-basis: auto;
	flex-grow: 0;
	flex-shrink: 0;
	width: 100%;
	margin-top: 0;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 4px;
	padding: 14px 18px;
}
.contact-form-phone__note-icon { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; color: var(--color-red); }
.contact-form-phone__note p { font-size: 12px; color: var(--color-text-sub); line-height: 1.7; margin: 0; }

.brand-story-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.brand-story-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.brand-story-hero__inner { position: relative; z-index: 1; width: 100%; }
.brand-story-hero__body { max-width: 420px; }
.brand-story-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.brand-story-hero__title { font-size: 34px; font-weight: 700; margin-bottom: 20px; }
.brand-story-hero__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.brand-story-section { padding: 64px 0; }
.brand-story-section__inner { display: flex; align-items: center; gap: 56px; }
.brand-story-section--reverse .brand-story-section__inner { flex-direction: row-reverse; }
.brand-story-section__photo {
	position: relative;
	flex: 1 1 50%;
	min-height: 360px;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.brand-story-section__caption {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	background: rgba(0, 0, 0, 0.55);
	color: var(--color-white);
	font-size: 12px;
	line-height: 1.8;
	padding: 14px 18px;
	border-radius: 4px;
}
.brand-story-section__photo--overlay { display: flex; align-items: flex-end; padding: 32px; }
.brand-story-section__photo--overlay::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.1) 55%, rgba(0,0,0,0) 72%);
}
.brand-story-section__photo-heading {
	position: relative;
	z-index: 1;
	color: var(--color-white);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.5;
}
.brand-story-section__body { flex: 1 1 50%; }
.brand-story-section__head { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.brand-story-section__num { font-size: 15px; font-weight: 700; color: var(--color-red); letter-spacing: 0.05em; }
.brand-story-section__label { font-size: 13px; font-weight: 700; color: var(--color-text); }
.brand-story-section__heading { font-size: 26px; font-weight: 700; line-height: 1.5; margin-bottom: 20px; }
.brand-story-section__text p { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 10px; }
.brand-story-section__text p:last-child { margin-bottom: 0; }

.business-intro { padding: 64px 0 8px; text-align: center; }
.business-intro__heading { font-size: 26px; font-weight: 700; line-height: 1.6; margin-bottom: 20px; }
.business-intro__lead { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; max-width: 640px; margin: 0 auto; }

.business-section { padding: 56px 0; }
.business-section--alt { background: var(--color-gray-bg); }
.business-section__inner { display: flex; align-items: center; gap: 56px; }
.business-section--reverse .business-section__inner,
.business-section__inner.business-section--reverse { flex-direction: row-reverse; }
.business-section__photo {
	flex: 1 1 50%;
	min-height: 320px;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--color-white);
	background-size: cover;
	background-position: center;
}
.business-section__body { flex: 1 1 50%; }
.business-section__label {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--color-red);
	margin-bottom: 12px;
}
.business-section__heading { font-size: 24px; font-weight: 700; margin-bottom: 16px; }
.business-section__text p { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 10px; }
.business-section__text p:last-child { margin-bottom: 0; }
.business-section__links { display: flex; gap: 24px; margin-top: 18px; flex-wrap: wrap; }

@media (max-width: 1024px) {
	.business-section__inner { flex-direction: column; gap: 28px; }
	.business-section--reverse .business-section__inner { flex-direction: column; }
	.business-section__photo { width: 100%; min-height: 260px; }
}
@media (max-width: 782px) {
	.business-section { padding: 40px 0; }
	.business-section__heading { font-size: 20px; }
}

.exec-message-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.exec-message-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.exec-message-hero__inner { position: relative; z-index: 1; width: 100%; }
.exec-message-hero__body { max-width: 420px; }
.exec-message-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.exec-message-hero__title { font-size: 34px; font-weight: 700; margin-bottom: 20px; }
.exec-message-hero__headline {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.7;
	margin-bottom: 18px;
}
.exec-message-hero__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.exec-message-block { padding: 64px 0; }
.exec-message-block__inner { display: flex; align-items: stretch; min-height: 520px; }
.exec-message-block--reverse .exec-message-block__inner { flex-direction: row-reverse; }
.exec-message-block__photo {
	flex: 1 1 50%;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.exec-message-block__body {
	flex: 1 1 50%;
	display: flex;
	align-items: center;
	background: var(--color-white);
}
.exec-message-block--alt .exec-message-block__body { background: var(--color-gray-bg); }
.exec-message-block__content { max-width: 480px; padding: 64px 64px 64px 72px; }
.exec-message-block--reverse .exec-message-block__content { padding: 64px 72px 64px 64px; }
.exec-message-block__label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--color-red);
	margin-bottom: 16px;
}
.exec-message-block__heading { font-size: 26px; font-weight: 700; line-height: 1.6; margin-bottom: 24px; }
.exec-message-block__text p { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 14px; }
.exec-message-block__text p:last-child { margin-bottom: 0; }
.exec-message-block__signature { margin-top: 28px; text-align: right; }
.exec-message-block__role { font-size: 14px; font-weight: 700; color: var(--color-text); }

.company-overview { padding: 64px 0; }
.company-overview__heading {
	text-align: center;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 18px;
}
.company-overview__heading-rule {
	width: 32px;
	height: 2px;
	background: var(--color-red);
	margin: 0 auto 40px;
}
.company-overview__table {
	max-width: 840px;
	margin: 0 auto;
	border-top: 1px solid var(--color-gray-line);
}
.company-overview__row {
	display: flex;
	gap: 32px;
	padding: 18px 4px;
	border-bottom: 1px solid var(--color-gray-line);
	font-size: 13px;
}
.company-overview__label { flex: 0 0 160px; font-weight: 700; color: var(--color-text); }
.company-overview__value { color: var(--color-text-sub); line-height: 1.9; }

.company-facility { padding: 64px 0; background: var(--color-gray-bg); }
.company-facility__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 20px;
}
.company-facility__photo {
	grid-column: span 2;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.company-facility__photo:nth-child(1),
.company-facility__photo:nth-child(2) {
	grid-column: span 3;
	aspect-ratio: 16 / 10;
}

.company-timeline { padding: 64px 0; }
.company-timeline__heading {
	text-align: center;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 18px;
}
.company-timeline__heading-rule {
	width: 32px;
	height: 2px;
	background: var(--color-red);
	margin: 0 auto 40px;
}
.company-timeline__list { position: relative; max-width: 760px; margin: 0 auto; }
.company-timeline__list::before {
	content: '';
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 4px;
	width: 1px;
	background: var(--color-gray-line);
}
.company-timeline__item {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 28px;
	padding: 14px 0 14px 32px;
}
.company-timeline__dot {
	position: absolute;
	left: 0;
	top: 20px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--color-red);
}
.company-timeline__year { flex: 0 0 110px; font-size: 14px; font-weight: 700; color: var(--color-red); }
.company-timeline__text { font-size: 13px; color: var(--color-text); line-height: 1.8; }

.company-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.company-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.company-hero__inner { position: relative; z-index: 1; width: 100%; }
.company-hero__body { max-width: 420px; }
.company-hero__title { font-size: 34px; font-weight: 700; margin-bottom: 20px; }
.company-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.company-hero__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.pm-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.pm-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.pm-hero__inner { position: relative; z-index: 1; width: 100%; }
.pm-hero__body { max-width: 420px; }
.pm-hero__title { font-size: 34px; font-weight: 700; margin-bottom: 20px; }
.pm-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.pm-hero__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.pm-flow { padding: 64px 0; }
.pm-flow__heading { text-align: center; font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.pm-flow__heading-rule { width: 32px; height: 2px; background: var(--color-red); margin: 0 auto 48px; }
.pm-flow__steps { display: flex; align-items: flex-start; gap: 8px; }
.pm-flow__step {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 8px;
}
.pm-flow__head {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 18px;
}
.pm-flow__num {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	font-size: 12px;
	font-weight: 700;
}
.pm-flow__icon {
	width: 110px;
	height: 110px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #f5f5f5;
	color: var(--color-text);
	margin-bottom: 16px;
}
.pm-flow__icon svg { width: 44px; height: 44px; }
.pm-flow__label { font-size: 14px; font-weight: 700; color: var(--color-text); }
.pm-flow__desc { font-size: 11px; color: var(--color-text-sub); line-height: 1.7; }
.pm-flow__arrow {
	flex: 0 0 auto;
	align-self: center;
	font-size: 18px;
	font-weight: 700;
	color: var(--color-gray-line);
	padding-top: 92px;
}

.pm-quality { padding: 64px 0; background: var(--color-gray-bg); }
.pm-quality__heading { text-align: center; font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.pm-quality__heading-rule { width: 32px; height: 2px; background: var(--color-red); margin: 0 auto 48px; }
.pm-quality__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pm-quality__card {
	position: relative;
	background: var(--color-white);
	border-radius: 8px;
	overflow: hidden;
	padding-bottom: 24px;
}
.pm-quality__photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.pm-quality__title { text-align: center; font-size: 15px; font-weight: 700; margin: 20px 20px 12px; }
.pm-quality__list { padding: 0 20px; margin-bottom: 12px; }
.pm-quality__list li {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 12px;
	color: var(--color-text-sub);
	line-height: 1.7;
	margin-bottom: 6px;
}
.pm-quality__list li:last-child { margin-bottom: 0; }
.pm-quality__check { flex: 0 0 auto; width: 14px; height: 14px; color: var(--color-red); margin-top: 2px; }
.pm-quality__check svg { width: 100%; height: 100%; }
.pm-quality__desc { font-size: 12px; color: var(--color-text-sub); line-height: 1.8; padding: 0 20px; }

.pm-storage { padding: 64px 0; }
.pm-storage__grid { display: flex; align-items: center; gap: 56px; }
.pm-storage__body { flex: 1 1 50%; }
.pm-storage__rule { display: block; width: 32px; height: 2px; background: var(--color-red); margin-bottom: 20px; }
.pm-storage__heading { font-size: 26px; font-weight: 700; line-height: 1.5; margin-bottom: 20px; }
.pm-storage__text { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 24px; }
.pm-storage__list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	color: var(--color-text);
	line-height: 1.8;
	margin-bottom: 12px;
}
.pm-storage__list li:last-child { margin-bottom: 0; }
.pm-storage__check {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	margin-top: 1px;
}
.pm-storage__check svg { width: 10px; height: 10px; }
.pm-storage__photo {
	flex: 1 1 50%;
	min-height: 360px;
	border-radius: 8px;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}

.pm-why { padding: 64px 0; background: var(--color-gray-bg); }
.pm-why__grid { display: flex; align-items: center; gap: 56px; flex-direction: row-reverse; }
.pm-why__body { flex: 1 1 50%; }
.pm-why__rule { display: block; width: 32px; height: 2px; background: var(--color-red); margin-bottom: 20px; }
.pm-why__heading { font-size: 26px; font-weight: 700; line-height: 1.5; margin-bottom: 20px; }
.pm-why__text p { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 14px; }
.pm-why__text p:last-child { margin-bottom: 0; }
.pm-why__photo {
	flex: 1 1 50%;
	min-height: 360px;
	border-radius: 8px;
	background-color: var(--color-white);
	background-size: cover;
	background-position: center;
}

.csr-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.csr-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.csr-hero__inner { position: relative; z-index: 1; width: 100%; }
.csr-hero__body { max-width: 420px; }
.csr-hero__title { font-size: 34px; font-weight: 700; margin-bottom: 20px; }
.csr-hero__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.csr-hero__desc { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.csr-intro { padding: 64px 0; text-align: center; }
.csr-intro__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-gray-bg);
	color: var(--color-red);
	margin-bottom: 20px;
}
.csr-intro__icon svg { width: 26px; height: 26px; }
.csr-intro__heading { font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.csr-intro__rule { display: block; width: 32px; height: 2px; background: var(--color-red); margin: 0 auto 24px; }
.csr-intro__lead { font-size: 13px; color: var(--color-text-sub); line-height: 2; }

.csr-features { padding-bottom: 64px; }
.csr-feature { padding: 40px; border-radius: 12px; margin-bottom: 32px; }
.csr-feature:last-child { margin-bottom: 0; }
.csr-feature--blue { background: #eaf4fb; }
.csr-feature--green { background: #eaf7ec; }
.csr-feature--cream { background: #faf5e9; }
.csr-feature__grid { display: flex; align-items: center; gap: 56px; }
.csr-feature--reverse .csr-feature__grid { flex-direction: row-reverse; }
.csr-feature__photo {
	flex: 1 1 45%;
	min-height: 320px;
	border-radius: 8px;
	background-color: var(--color-white);
	background-size: cover;
	background-position: center;
}
.csr-feature__body { flex: 1 1 55%; }
.csr-feature__label {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 12px;
}
.csr-feature__heading { font-size: 24px; font-weight: 700; line-height: 1.5; margin-bottom: 16px; }
.csr-feature__rule { display: block; width: 32px; height: 2px; background: var(--color-red); margin-bottom: 20px; }
.csr-feature__text { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 20px; }
.csr-feature__list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	color: var(--color-text);
	line-height: 1.8;
	margin-bottom: 10px;
}
.csr-feature__list li:last-child { margin-bottom: 0; }
.csr-feature__check {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	margin-top: 1px;
}
.csr-feature__check svg { width: 10px; height: 10px; }

.csr-sdgs { padding: 64px 0; background: var(--color-gray-bg); }
.csr-sdgs__heading { text-align: center; font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.csr-sdgs__heading-rule { width: 32px; height: 2px; background: var(--color-red); margin: 0 auto 40px; }
.csr-sdgs__partner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 720px;
	margin: 0 auto 40px;
}
.csr-sdgs__partner-badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-red);
	border-radius: 999px;
	padding: 8px 20px;
	margin-bottom: 16px;
}
.csr-sdgs__partner-text { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; }
.csr-sdgs__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}
.csr-sdgs__item {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	padding: 16px;
	color: var(--color-white);
}
.csr-sdgs__no { font-size: 12px; font-weight: 700; letter-spacing: 0.04em; }
.csr-sdgs__text { font-size: 13px; font-weight: 700; line-height: 1.5; }

.csr-future {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 320px;
	padding: 64px 0;
	background-color: var(--color-black);
	background-size: cover;
	background-position: center;
	color: var(--color-white);
	overflow: hidden;
}
.csr-future::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.55);
}
.csr-future__inner { position: relative; z-index: 1; text-align: center; }
.csr-future__title { font-size: 28px; font-weight: 700; margin-bottom: 16px; }
.csr-future__desc { font-size: 14px; color: #e6e6e6; line-height: 1.9; }

.recruit-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 64px 0;
	overflow: hidden;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.recruit-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0) 72%);
}
.recruit-hero__inner { position: relative; z-index: 1; width: 100%; }
.recruit-hero__body { max-width: 420px; }
.recruit-hero__title {
	font-size: 34px;
	font-weight: 700;
	line-height: 1.5;
	margin-bottom: 20px;
}
.recruit-hero__title span { color: var(--color-red); }
.recruit-hero__label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-red);
	margin-bottom: 18px;
}
.recruit-hero__desc {
	font-size: 14px;
	color: var(--color-text-sub);
	line-height: 1.9;
}

.recruit-values { padding: 64px 0; background: #f5f5f5; }
.recruit-values__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.recruit-values__item {
	padding: 0 32px;
	text-align: center;
	border-left: 1px solid var(--color-gray-line);
}
.recruit-values__item:first-child { border-left: none; }
.recruit-values__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	margin: 0 auto 16px;
}
.recruit-values__icon svg { width: 26px; height: 26px; }
.recruit-values__title { font-size: 15px; font-weight: 700; margin-bottom: 10px; }
.recruit-values__text { font-size: 12px; color: var(--color-text-sub); line-height: 1.8; }

.recruit-jobs { padding: 64px 0; }
.recruit-jobs__lead {
	text-align: center;
	font-size: 13px;
	color: var(--color-text-sub);
	line-height: 1.9;
	max-width: 640px;
	margin: -16px auto 40px;
}
.recruit-dept {
	display: flex;
	border: 2px solid var(--color-gray-line);
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 24px;
}
.recruit-dept:last-child { margin-bottom: 0; }
.recruit-dept--pink { border-color: #d1476b; }
.recruit-dept--blue { border-color: #2f6fb0; }
.recruit-dept--green { border-color: #3f7e44; }
.recruit-dept__panel {
	flex: 0 0 240px;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	color: var(--color-white);
}
.recruit-dept--pink .recruit-dept__panel { background: #d1476b; }
.recruit-dept--blue .recruit-dept__panel { background: #2f6fb0; }
.recruit-dept--green .recruit-dept__panel { background: #3f7e44; }
.recruit-dept__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255,255,255,0.2);
	margin-bottom: 16px;
}
.recruit-dept__icon svg { width: 22px; height: 22px; }
.recruit-dept__name { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.recruit-dept__desc { font-size: 12px; line-height: 1.8; opacity: 0.9; }
.recruit-dept__jobs {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	background: var(--color-white);
}
.recruit-job-card {
	display: flex;
	flex-direction: row;
}
.recruit-job-card + .recruit-job-card { border-top: 1px solid var(--color-gray-line); }
.recruit-job-card__photo {
	flex: 0 0 280px;
	margin: 12px;
	border-radius: 8px;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.recruit-job-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 24px 32px;
}
.recruit-job-card__title { color: var(--color-red); font-size: 16px; font-weight: 700; margin-bottom: 12px; }
.recruit-job-card__text { font-size: 12px; color: var(--color-text-sub); line-height: 1.8; margin-bottom: 18px; }
.recruit-job-card__tagline {
	margin-bottom: 14px;
	color: var(--color-black);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
}

.recruit-openings { padding: 64px 0; background: #f5f5f5; }
.recruit-openings__inner { display: flex; gap: 56px; align-items: flex-start; }
.recruit-openings__text { flex: 0 0 340px; }
.recruit-openings__label {
	display: block;
	color: var(--color-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin-bottom: 12px;
}
.recruit-openings__heading { font-size: 24px; font-weight: 700; margin-bottom: 16px; }
.recruit-openings__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.9; margin-bottom: 24px; }
.recruit-openings__card {
	flex: 1 1 auto;
	background: var(--color-white);
	border-radius: 12px;
	padding: 8px 28px;
}
.recruit-openings__list li { border-bottom: 1px solid var(--color-gray-line); }
.recruit-openings__list li:last-child { border-bottom: none; }
.recruit-openings__list a {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 0;
}
.recruit-openings__job-title {
	flex: 0 0 200px;
	font-size: 14px;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 8px;
}
.recruit-openings__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 8px;
	font-size: 10px;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-red);
	border-radius: 3px;
}
.recruit-openings__job-meta { flex: 1 1 auto; font-size: 12px; color: var(--color-text-sub); }
.recruit-openings__chevron { flex-shrink: 0; color: var(--color-red); }
.recruit-openings__chevron svg { width: 16px; height: 16px; }
.recruit-openings__all {
	display: block;
	text-align: center;
	margin-top: 8px;
	padding: 16px 0;
	border-top: 1px dashed var(--color-gray-line);
	font-size: 12px;
	font-weight: 700;
	color: var(--color-text);
}

.recruit-benefits { padding: 64px 0; }
.recruit-benefits__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.recruit-benefits__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
	padding: 28px 16px;
	border: 1px solid var(--color-gray-line);
	border-radius: 5px;
	transition: box-shadow 0.2s;
}
.recruit-benefits__item:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.recruit-benefits__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-red);
	color: var(--color-white);
	flex-shrink: 0;
}
.recruit-benefits__icon svg { width: 26px; height: 26px; }
.recruit-benefits__title { font-size: 13px; font-weight: 700; }
.recruit-benefits__text { font-size: 11px; color: var(--color-text-sub); line-height: 1.6; }

.recruit-cta {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;
	padding: 64px 0;
	background: var(--lp-red, #bf0007);
	color: #fff;
	overflow: hidden;
	text-align: center;
}
.recruit-cta::before { content: none; }
.recruit-cta__inner { position: relative; z-index: 1; }
.recruit-cta__title { font-size: 28px; font-weight: 700; margin-bottom: 12px; }
.recruit-cta__desc { font-size: 14px; opacity: 0.9; margin-bottom: 32px; }
.recruit-cta__actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.recruit-cta__actions .btn { min-width: 240px; justify-content: space-between; }

.jobs-hero { background: var(--color-gray-bg); padding: 40px 0; text-align: center; }
.jobs-hero__title { font-size: 26px; font-weight: 700; margin-bottom: 12px; }
.jobs-hero__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.8; }

.jobs-archive { padding: 56px 0; }
.jobs-archive__list { display: flex; flex-direction: column; gap: 20px; }
.jobs-archive__card a {
	display: flex;
	align-items: center;
	gap: 24px;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 8px;
	padding: 20px;
	transition: box-shadow 0.2s;
}
.jobs-archive__card a:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.jobs-archive__photo {
	position: relative;
	flex: 0 0 200px;
	aspect-ratio: 4 / 3;
	border-radius: 6px;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.jobs-archive__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 3px 10px;
	font-size: 10px;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-red);
	border-radius: 3px;
}
.jobs-archive__body { flex: 1 1 auto; }
.jobs-archive__title { font-size: 17px; font-weight: 700; margin-bottom: 8px; }
.jobs-archive__desc { font-size: 13px; color: var(--color-text-sub); line-height: 1.8; margin-bottom: 12px; }
.jobs-archive__meta { display: flex; gap: 10px; flex-wrap: wrap; }
.jobs-archive__meta li {
	font-size: 11px;
	padding: 4px 12px;
	border: 1px solid var(--color-gray-line);
	border-radius: 20px;
	color: var(--color-text-sub);
}
.jobs-archive__arrow {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--color-gray-line);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text);
}
.jobs-archive__arrow svg { width: 16px; height: 16px; }
.jobs-archive__empty { text-align: center; padding: 40px 0; color: var(--color-text-sub); font-size: 13px; }

.job-hero { background: var(--color-gray-bg); padding: 40px 0; }
.job-hero__inner { display: flex; align-items: center; gap: 40px; }
.job-hero__photo {
	flex: 0 0 40%;
	aspect-ratio: 4 / 3;
	border-radius: 10px;
	background-color: var(--color-gray-bg);
	background-size: cover;
	background-position: center;
}
.job-hero__body { flex: 1 1 auto; }
.job-hero__status {
	display: inline-flex;
	padding: 4px 12px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 3px;
	margin-bottom: 12px;
	color: var(--color-white);
	background: var(--color-red);
}
.job-hero__status--closed { background: #888; }
.job-hero__title { font-size: 26px; font-weight: 700; margin-bottom: 16px; }
.job-hero__meta { display: flex; gap: 10px; flex-wrap: wrap; }
.job-hero__meta li {
	font-size: 12px;
	padding: 5px 14px;
	border-radius: 20px;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
}

.job-detail { padding: 56px 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); gap: 48px; align-items: start; }
.job-detail__closed-note {
	grid-column: 1 / -1;
	padding: 16px 20px;
	background: #fdecec;
	border: 1px solid #f3b9b9;
	border-radius: 6px;
	font-size: 13px;
}
.job-detail__closed-note a { color: var(--color-red); font-weight: 700; }
.job-detail__block { margin-bottom: 40px; }
.job-detail__block:last-child { margin-bottom: 0; }
.job-detail__heading {
	font-size: 18px;
	font-weight: 700;
	padding-bottom: 12px;
	margin-bottom: 16px;
	border-bottom: 2px solid var(--color-black);
}
.job-detail__text { font-size: 14px; color: var(--color-text-sub); line-height: 1.9; }

.job-spec-card {
	position: sticky;
	top: 100px;
	background: var(--color-white);
	border: 1px solid var(--color-gray-line);
	border-radius: 8px;
	padding: 24px;
}
.job-spec-card__heading {
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-gray-line);
}
.job-spec-card__table { width: 100%; border-collapse: collapse; }
.job-spec-card__table tr { border-bottom: 1px solid var(--color-gray-line); }
.job-spec-card__table tr:last-child { border-bottom: none; }
.job-spec-card__table th,
.job-spec-card__table td {
	text-align: left;
	font-weight: 400;
	font-size: 12px;
	padding: 12px 8px;
	vertical-align: top;
}
.job-spec-card__table th {
	width: 76px;
	font-weight: 700;
	background: var(--color-gray-bg);
}

@media (max-width: 1300px) {
	.purpose__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.popular__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

@media (max-width: 1024px) {
	.business__grid,
	.stats__grid,
	.case-study__grid,
	.info-columns__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.popular__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.hero__title { font-size: 34px; }

	.products-main__grid { grid-template-columns: 1fr; }
	.products-sidebar { order: 2; }
	.products-grid,
	.products-grid--4col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.products-help__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.product-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.products-toolbar { flex-direction: column; align-items: flex-start; }

	.product-detail { grid-template-columns: 1fr; gap: 32px; }
	.product-tables { grid-template-columns: 1fr; gap: 40px; }

	.about-hero { padding: 40px 0; min-height: 400px; }
	.about-hero__body { max-width: none; }
	.about-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }

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

	.brand-story-hero { padding: 40px 0; min-height: 400px; }
	.brand-story-hero__body { max-width: none; }
	.brand-story-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.brand-story-section__inner { flex-direction: column; gap: 32px; }
	.brand-story-section--reverse .brand-story-section__inner { flex-direction: column; }
	.brand-story-section__photo { width: 100%; min-height: 280px; }

	.exec-message-hero { padding: 40px 0; min-height: 400px; }
	.exec-message-hero__body { max-width: none; }
	.exec-message-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.exec-message-block__inner { flex-direction: column; min-height: auto; }
	.exec-message-block--reverse .exec-message-block__inner { flex-direction: column; }
	.exec-message-block__photo { width: 100%; min-height: 280px; }
	.exec-message-block__content { max-width: none; padding: 40px 32px; }
	.exec-message-block--reverse .exec-message-block__content { padding: 40px 32px; }

	.company-hero { padding: 40px 0; min-height: 400px; }
	.company-hero__body { max-width: none; }
	.company-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.company-facility__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.company-facility__photo,
	.company-facility__photo:nth-child(1),
	.company-facility__photo:nth-child(2) {
		grid-column: span 1;
		aspect-ratio: 4 / 3;
	}

	.pm-hero { padding: 40px 0; min-height: 400px; }
	.pm-hero__body { max-width: none; }
	.pm-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.pm-flow__steps { flex-wrap: wrap; }
	.pm-flow__step { flex: 1 1 calc(33.333% - 8px); }
	.pm-flow__arrow { display: none; }
	.pm-storage__grid,
	.pm-why__grid { flex-direction: column; gap: 32px; }
	.pm-storage__photo,
	.pm-why__photo { width: 100%; min-height: 280px; }

	.csr-hero { padding: 40px 0; min-height: 400px; }
	.csr-hero__body { max-width: none; }
	.csr-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.csr-feature__grid { flex-direction: column; gap: 24px; }
	.csr-feature--reverse .csr-feature__grid { flex-direction: column; }
	.csr-feature__photo { width: 100%; min-height: 240px; }
	.csr-sdgs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.recruit-hero { padding: 40px 0; min-height: 400px; }
	.recruit-hero__body { max-width: none; }
	.recruit-hero::before { background: linear-gradient(to right, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.93) 55%, rgba(255,255,255,0.5) 80%, rgba(255,255,255,0.15) 100%); }
	.recruit-values__grid { grid-template-columns: 1fr; gap: 24px; }
	.recruit-values__item { border-left: none; border-top: 1px solid var(--color-gray-line); padding: 24px 16px 0; }
	.recruit-values__item:first-child { border-top: none; padding-top: 0; }
	.recruit-dept { flex-direction: column; }
	.recruit-dept__panel { flex: 1 1 auto; flex-direction: row; align-items: center; gap: 16px; padding: 20px 24px; }
	.recruit-dept__icon { margin-bottom: 0; }
	.recruit-openings__inner { flex-direction: column; }
	.recruit-openings__text { flex: 1 1 auto; }
	.recruit-benefits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.job-detail { grid-template-columns: 1fr; }
	.job-spec-card { position: static; }
	.jobs-archive__photo { flex: 0 0 160px; }

	.contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.contact-consult { flex-direction: column; }
	.contact-consult__photo { min-height: 240px; }
}

@media (max-width: 782px) {
	.hero { min-height: auto; padding: 20px 0; }
	.hero__inner { flex-direction: column; align-items: stretch; }
	.hero__copy { order: 0; padding: 18px 20px; margin-bottom: 20px; }
	.hero__title { font-size: 28px; }
	.hero__lead { font-size: 15px; }
	.hero__actions { order: 0; flex-direction: column; }
	.hero__actions .btn { width: 100%; justify-content: center; }
	.hero__bg-video { display: none; }

	.purpose__grid,
	.business__grid,
	.stats__grid,
	.case-study__grid,
	.info-columns__grid {
		grid-template-columns: 1fr;
	}
	.popular__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.section-heading--inline {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
	.case-study__head,
	.popular__head { flex-direction: column; align-items: flex-start; gap: 12px; }

	.products-search__inner { flex-direction: column; align-items: stretch; }
	.products-search__form { max-width: none; }
	.products-grid,
	.products-grid--4col { grid-template-columns: 1fr; }
	.products-help__grid,
	.products-help__grid--3 { grid-template-columns: 1fr; }
	.product-list__grid { grid-template-columns: 1fr; }
	.products-toolbar__controls { width: 100%; justify-content: space-between; }

	.product-detail__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.product-set-table { grid-template-columns: 1fr; }
	.related-products__nav { display: none; }
	.related-products__list { grid-auto-columns: minmax(160px, 68%); }

	.about-hero { padding: 24px 0; min-height: 340px; }
	.about-hero__title { font-size: 26px; }

	.about-hub__grid { grid-template-columns: 1fr; }

	.brand-story-hero { padding: 24px 0; min-height: 340px; }
	.brand-story-hero__title { font-size: 26px; }
	.brand-story-section { padding: 40px 0; }
	.brand-story-section__heading,
	.brand-story-section__photo-heading { font-size: 22px; }

	.exec-message-hero { padding: 24px 0; min-height: 340px; }
	.exec-message-hero__title { font-size: 26px; }
	.exec-message-hero__headline { font-size: 18px; }
	.exec-message-block__heading { font-size: 22px; }

	.company-hero { padding: 24px 0; min-height: 340px; }
	.company-hero__title { font-size: 26px; }
	.company-overview__row { flex-direction: column; gap: 6px; }
	.company-overview__label { flex: 0 0 auto; }
	.company-facility__grid { grid-template-columns: 1fr; }
	.company-facility__photo,
	.company-facility__photo:nth-child(1),
	.company-facility__photo:nth-child(2) {
		grid-column: span 1;
		aspect-ratio: 4 / 3;
	}
	.company-timeline__year { flex: 0 0 auto; }
	.company-timeline__item { flex-direction: column; gap: 4px; }

	.pm-hero { padding: 24px 0; min-height: 340px; }
	.pm-hero__title { font-size: 26px; }
	.pm-flow__steps { flex-direction: column; }
	.pm-flow__step { flex: 1 1 auto; width: 100%; }
	.pm-quality__grid { grid-template-columns: 1fr; }
	.pm-storage__heading,
	.pm-why__heading { font-size: 22px; }

	.csr-hero { padding: 24px 0; min-height: 340px; }
	.csr-hero__title { font-size: 26px; }
	.csr-feature { padding: 24px; }
	.csr-feature__heading { font-size: 20px; }
	.csr-sdgs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.csr-sdgs__partner-badge { font-size: 11px; }
	.csr-future__title { font-size: 22px; }

	.recruit-hero { padding: 24px 0; min-height: 340px; }
	.recruit-hero__title { font-size: 26px; }
	.recruit-values { padding: 40px 0; }
	.recruit-jobs { padding: 40px 0; }
	.recruit-job-card { flex-direction: column; }
	.recruit-job-card__photo { flex: 0 0 auto; width: 100%; height: 180px; }
	.recruit-job-card__body { padding: 20px; justify-content: flex-start; }
	.recruit-openings { padding: 40px 0; }
	.recruit-openings__card { padding: 4px 20px; }
	.recruit-openings__list a { flex-wrap: wrap; gap: 6px 16px; }
	.recruit-openings__job-title { flex: 1 1 auto; }
	.recruit-openings__job-meta { flex: 1 1 100%; }
	.recruit-benefits { padding: 40px 0; }
	.recruit-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.recruit-cta { padding: 48px 0; min-height: auto; }
	.recruit-cta__title { font-size: 22px; }
	.recruit-cta__actions { flex-direction: column; align-items: stretch; }
	.recruit-cta__actions .btn { width: 100%; }

	.jobs-hero { padding: 28px 0; }
	.jobs-hero__title { font-size: 22px; }
	.jobs-archive { padding: 40px 0; }
	.jobs-archive__card a { flex-direction: column; align-items: stretch; }
	.jobs-archive__photo { flex: 1 1 auto; width: 100%; aspect-ratio: 16 / 9; }
	.jobs-archive__arrow { display: none; }

	.job-hero { padding: 24px 0; }
	.job-hero__inner { flex-direction: column; }
	.job-hero__photo { width: 100%; flex: 1 1 auto; }
	.job-hero__title { font-size: 22px; }
	.job-detail { padding: 40px 0; grid-template-columns: 1fr; }

	.contact-main { padding: 40px 0; }
	.contact-cards { grid-template-columns: 1fr; margin-bottom: 40px; }
	.contact-consult__text { padding: 32px 24px; }
	.contact-consult__title { font-size: 20px; }

	.contact-form-section { padding: 40px 0; }
	.contact-form { padding: 8px 20px; }
	.contact-form__row { flex-direction: column; gap: 10px; padding: 20px 0; }
	.contact-form__label { padding-top: 0; }
	.contact-form-phone { padding: 24px; flex-direction: column; align-items: flex-start; }
	.contact-form-phone__hours { text-align: left; }
}
