/* ===== LINE（ラインナップ紹介） =====
 *
 * 最終デザインで EXAMPLE 1 / EXAMPLE 2 を統合したセクション。
 * 導入（見出し + 本文）+ 可変アイテム（画像×文章の変則レイアウト）。
 */

.line {
	position: relative;
	background-color: #F5F5F5;
	padding: 100px 0 100px 32px;
	display: flex;
	align-items: flex-start;
	gap: 32px;
}

.line__label {
	position: sticky;
	top: 120px;
	flex-shrink: 0;
	width: 144px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: var(--z-sticky);
}

.line__label-line {
	display: block;
	width: 72px;
	height: 1px;
	background-color: var(--c-gray-1);
}

.line__label-text {
	font-family: var(--ff-en);
	font-weight: var(--fw-medium);
	font-size: 20px;
	letter-spacing: 1.2px;
	line-height: 1;
	color: var(--c-black);
	writing-mode: vertical-rl;
	text-orientation: mixed;
	margin-top: 7px;
	white-space: nowrap;
	align-self: flex-start;
}

.line__inner {
	flex: 1;
	min-width: 0;
}

/* ---------- 導入 ---------- */

.line__intro {
	max-width: 516px;
}

.line__intro-title {
	margin: 0;
	font-family: var(--ff-jp);
	font-weight: var(--fw-regular);
	font-size: 36px;
	letter-spacing: 1.44px;
	line-height: 1.6;
	color: var(--c-black);
	/* PC では導入見出しを1行に固定（本文の 516px 幅には影響させない） */
	white-space: nowrap;
}

.line__intro-body {
	margin-top: 30px;
	font-family: var(--ff-jp);
	font-size: 14px;
	letter-spacing: 0.28px;
	line-height: 26px;
	color: var(--c-gray-text);
}

.line__intro-body p {
	margin: 0;
}

/* ---------- アイテム ---------- */

.line__list {
	margin-top: 80px;
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.line-item {
	display: flex;
	gap: 32px;
	align-items: center;
}

.line-item--indented-image-text {
	padding-left: 179px;
}

.line-item__image {
	flex: 0 0 auto;
	width: 320px;
	height: 518px;
	overflow: hidden;
}

.line-item__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.line-item__text {
	flex: 0 1 528px;
	max-width: 528px;
	padding: 0 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* 文章 → 画像2枚：テキスト列は 496px（Figma準拠。画像2枚が右端 32px 手前で終わる） */
.line-item--text-images .line-item__text {
	flex: 0 1 496px;
	max-width: 496px;
	padding: 0 32px 0 0;
}

.line-item__title {
	margin: 0;
	font-family: var(--ff-jp);
	font-weight: var(--fw-regular);
	font-size: 20px;
	line-height: 1.6;
	color: var(--c-black);
}

.line-item__body {
	font-family: var(--ff-jp);
	font-size: 14px;
	letter-spacing: 0.28px;
	line-height: 26px;
	color: var(--c-gray-text);
}

.line-item__body p {
	margin: 0;
}

.line-item__body p + p {
	margin-top: 26px;
}

/* ---------- SP ---------- */

@media (max-width: 1023px) {
	.line {
		padding: 79px 12px 80px 0;
		gap: 28px;
		align-items: flex-start;
	}

	.line__label {
		top: 80px;
		width: 33px;
		padding-left: 12px;
		box-sizing: border-box;
		gap: 16px;
	}

	.line__label-line {
		width: 21px;
	}

	.line__label-text {
		font-size: 12px;
		letter-spacing: 0.72px;
		margin-top: 0;
	}

	.line__intro {
		max-width: none;
	}

	.line__intro-title {
		font-size: 24px;
		letter-spacing: 0.96px;
		/* SP は領域が狭いので通常どおり折り返す */
		white-space: normal;
	}

	.line__intro-body {
		margin-top: 18px;
		font-size: 12px;
		line-height: 2;
		letter-spacing: 0.24px;
	}

	/* SP では PC 用の <br> 改行を全消し */
	.line__intro-body br,
	.line-item__body br {
		display: none;
	}

	.line__list {
		margin-top: 56px;
		gap: 60px;
	}

	/* 画像は2枚横並び → 文章、の縦積みに統一 */
	.line-item,
	.line-item--indented-image-text,
	.line-item--text-images {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		gap: 25px 10px;
		padding-left: 0;
		align-items: flex-start;
	}

	.line-item__image {
		flex: 0 0 calc((100% - 10px) / 2);
		max-width: calc((100% - 10px) / 2);
		width: auto;
		height: auto;
		aspect-ratio: 155 / 251;
		order: 1;
	}

	.line-item__text {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
		padding: 0;
		gap: 18px;
		order: 2;
	}

	.line-item--text-images .line-item__text {
		padding: 0;
	}

	.line-item__title {
		font-size: 16px;
		line-height: 1.6;
	}

	.line-item__body {
		font-size: 12px;
		line-height: 2;
		letter-spacing: 0.24px;
	}

	.line-item__body p + p {
		margin-top: 27px;
	}
}
