@charset "UTF-8";
/* プログラム規約ページ — Figma PC `154:6837` / SP `158:8680` */

/* --------------------------------------------------------------------------
   MV（濃紺 + グリッドの下層共通部分は base.css の .page-mv）
   -------------------------------------------------------------------------- */

.terms-mv {
	/* PC: 帯 136–386 / 中身 193–329 */
	padding-block: 57px;
}

.terms-mv__title {
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: 1.5;
	color: #fff;
	font-feature-settings: "palt" 1;
	font-family: Space Grotesk;
}

.terms-mv__lead {
	margin-top: 22px;
	font-size: var(--fs-lead);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.75);
}

/* --------------------------------------------------------------------------
   2 カラム（左 目次 228px / 右 本文 900px、間 72px）
   -------------------------------------------------------------------------- */

.terms {
	display: grid;
	grid-template-columns: minmax(180px, 228px) minmax(0, 900px);
	column-gap: clamp(20px, 3vw, 72px);
	justify-content: space-between;
	align-items: start;
	/* MV 下端 386 → 中身 458、本文下端 7790 → フッター 7904 */
	padding-top: 72px;
	padding-bottom: 114px;
}

/* --- 目次 --- */

.terms-toc__heading {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--c-heading);
}

.terms-toc__list {
	display: flex;
	flex-direction: column;
	gap: 15px;
	/* 見出し下端 482 → リスト 506、リストは 15px 字下げ */
	margin-top: 24px;
	padding-left: 15px;
}

.terms-toc__item a {
	display: flex;
	gap: 5px;
	align-items: baseline;
	line-height: 1.3;
	transition: color 0.2s ease;
}

.terms-toc__item a:hover {
	color: var(--c-primary);
}

/* Figma では「第1条」も「第10条」も 40px 幅の枠に入り、条名は常に x=45 から始まる。 */
.terms-toc__no {
	flex: none;
	width: 40px;
	font-size: 13px;
	color: var(--c-muted);
	white-space: nowrap;
}

/* 英語版は "Article 1"〜"Article 20" と大幅に長くなり、40px 幅では
   white-space: nowrap のテキストが隣の terms-toc__title に重なってしまう
   （PC実機で確認）。最長の "Article 20" が収まる幅に広げる。 */
.terms-toc__no--en {
	width: 60px;
}

/* 最長の「対象製品および本サポート」が 168px = 残り幅ぴったり。折り返さない。 */
.terms-toc__title {
	font-size: var(--fs-small);
	color: var(--c-text);
	white-space: nowrap;
}

.terms-toc__title--en {
	white-space: wrap;
}

/* --- 本文 --- */

.terms-body {
	display: flex;
	flex-direction: column;
	/* 各ブロックの間隔は Figma 実測でどこも 50px */
	gap: 50px;
}

.terms-article {
	display: flex;
	flex-direction: column;
	gap: 24px;
	/* 固定ヘッダーぶんアンカー位置をずらす */
	scroll-margin-top: calc(var(--header-h) + 24px);
}

.terms-article__heading {
	display: flex;
	gap: 5px;
	align-items: center;
	padding-bottom: 14px;
	border-bottom: 1px solid #e2e8f1;
	font-weight: 700;
}

.terms-article__no {
	flex: none;
	font-family: var(--font-mono);
	font-size: var(--fs-small);
	line-height: 1.2;
	color: var(--c-primary);
}

.terms-article__title {
	font-size: var(--fs-h3);
	line-height: 1.2;
	color: var(--c-text);
	font-feature-settings: "palt" 1;
}

/* 項（1. 2. 3. …） */
.terms-para {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.terms-para__no {
	flex: none;
	width: 18px;
	font-family: var(--font-mono);
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

.terms-para__text {
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

/* 号（[1] [2] …）。項番ぶん 32px 字下げする */
.terms-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-left: 32px;
}

.terms-list__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.terms-list__no {
	flex: none;
	min-width: 24px;
	font-family: var(--font-mono);
	font-size: 13px;
	line-height: 1.85;
	color: var(--c-text);
}

.terms-list__text {
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

/* --- 枠付きボックス（前文・パートナー種別・末尾の案内） --- */

.terms-boxes {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.terms-box {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 17px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-card);
}

.terms-box.terms-body__preamble {
	background: var(--c-bg-gray);
}

.terms-box > p {
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

.terms-box__title {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.7;
	color: var(--c-text);
}

.terms-box__desc {
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

.terms-box__target {
	font-size: 13px;
	line-height: 1.7;
	color: #6b7a8f;
}

.terms-box__target-label {
	font-weight: 700;
	color: var(--c-text);
}

.terms-box__bullets {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.terms-box__bullets li {
	display: flex;
	gap: 7px;
	align-items: center;
	font-size: 13px;
	line-height: 1.7;
	color: var(--c-text);
}

.terms-box__bullets img {
	flex: none;
	width: 20px;
	height: 20px;
}

/* --- 末尾 --- */

.terms-body__rule {
	height: 0;
	margin: 0;
	border: 0;
	border-top: 1px solid #e2e8f1;
}

.terms-body__enacted {
	font-size: var(--fs-small);
	line-height: 1.7;
	color: var(--c-text);
}

.terms-body__closing {
	gap: 20px;
	align-items: flex-start;
	background: var(--c-bg-gray);
}

.terms-box.terms-body__closing > p {
	font-size: var(--fs-body);
}

.terms-body__apply {
	width: 245px;
	min-height: 52px;
	font-size: var(--fs-body);
	border-radius: 5px;
	padding: 13px 25px;
}

/* --------------------------------------------------------------------------
   SP
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
	:root {
		--fs-small: 14px;
	}

	.terms-mv {
		/* SP: 帯 100–382 / 中身 146–336 */
		padding-block: 46px;
	}

	.terms-mv__title {
		font-size: 30px;
	}

	.terms-mv__lead {
		margin-top: 16px;
		font-size: var(--fs-small);
	}

	/* SP は 1 カラム。目次は枠付きパネルにして本文の上に積む。 */
	.terms {
		display: block;
		padding-top: 32px;
		padding-bottom: 60px;
	}

	.terms-toc {
		padding: 27px 20px 27px 49px;
		background: var(--c-bg-gray);
		border: 1px solid var(--c-border);
		border-radius: var(--radius-card);
	}

	.terms-toc__list {
		margin-top: 20px;
		padding-left: 25px;
	}

	/* SP は幅が足りないので折り返しを許す */
	.terms-toc__title {
		white-space: normal;
	}

	.terms-body {
		gap: 40px;
		/* 目次パネル下端 1153 → 本文 1185 */
		margin-top: 32px;
	}

	.terms-article {
		gap: 20px;
	}

	.terms-article__title {
		font-size: var(--fs-h3);
	}

	.terms-list {
		padding-left: 16px;
	}

	.terms-list__item,
	.terms-para {
		gap: 10px;
	}

	.terms-box {
		padding: 17px 12px;
	}

	.terms-box__bullets li {
		align-items: flex-start;
	}

	.terms-body__apply {
		width: 100%;
	}
}
