@charset "utf-8";

/* ==========================================================================
   [lgl_] Legal & Sitemap (プライバシー/クッキー/サイトマップ共通スタイル)
   ========================================================================== */

.lgl_inner {
}

/* ==========================================================================
   1. テキストベースのデザイン (.lgl_body)
   ========================================================================== */
.lgl_body {
	font-size: var(--fs-base);
	line-height: 2; /* 読みやすさ重視 */
	color: var(--color-text-main);
	letter-spacing: 0.05em;
}

.lgl_body p {
	margin-bottom: 2em;
}

.lgl_body h2 {
	font-size: var(--fs-lg);
	font-weight: bold;
	margin: 3em 0 1.5em;
	padding-bottom: 15px;
	border-bottom: 1px solid var(--color-border-dark);
}

.lgl_body ul {
	margin-bottom: 2em;
	padding-left: 1.5em;
}
.lgl_body li {
	margin-bottom: 0.5em;
}

/* テキスト内リンク */
.lgl_body a:not(.cm_btn) {
	color: var(--color-text-main);
	text-decoration: underline;
	transition: opacity var(--transition-base);
}
.lgl_body a:not(.cm_btn):hover {
	opacity: 0.5;
	text-decoration: none;
}

/* 制定日（右寄せ） */
.lgl_date {
	text-align: right;
	margin-top: 60px;
	font-weight: bold;
}

/* ページ下部の共通リンクエリア（カード型デザイン） */
.lgl_footer {
	margin-top: 60px;
	padding: 40px 30px;
	background-color: var(--color-bg-light); /* 薄いグレーで馴染ませる */
	border: 1px solid var(--color-border-light);
	border-radius: 8px;
	text-align: center;
	line-height: 1.8;
}
.lgl_footer p {
	margin-bottom: 20px;
}

/* ==========================================================================
   2. サイトマップ (sitemap.html用)
   ========================================================================== */
.lgl_sitemap_list {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 40px;
	margin-bottom: 60px;
}

.lgl_sitemap_item a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 5px; /* ここは固定！もう動かしません */
	text-decoration: none !important;
	font-weight: bold;
	color: var(--color-text-main) !important;
	font-size: var(--fs-base);
	position: relative;

	/* ▼ 色の変更だけを残す（paddingのアニメーションは削除） */
	transition: color var(--transition-base);
}

/* ▼ 新規追加！テキスト部分をGPUでヌルッと動かす魔法 */
.lgl_sitemap_text {
	display: block;
	transition: transform var(--transition-base);
}

/* ホバー時にテキストを10px右にスッと移動させる */
.lgl_sitemap_item a:hover .lgl_sitemap_text {
	transform: translateX(10px);
}

/* (以下は下線と矢印のコード。そのまま残します！) */
.lgl_sitemap_item a::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: var(--color-border-light);
}
.lgl_sitemap_item a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	background-color: var(--color-main);
	transition: width var(--transition-base);
}
.lgl_sitemap_item a:hover {
	color: var(--color-main) !important;
	/* padding-left: 15px; ← 重い原因だったこれを完全に削除！ */
}
.lgl_sitemap_item a:hover::after {
	width: 100%;
}
.lgl_sitemap_arrow {
	color: var(--color-border-dark);
	font-size: var(--fs-sm);
	transition:
		transform var(--transition-base),
		color var(--transition-base);
}
.lgl_sitemap_item a:hover .lgl_sitemap_arrow {
	color: var(--color-main);
	transform: translateX(5px);
}

/* ==========================================================================
   3. テーブル（表）のデザイン (cookie_policy.html用)
   ========================================================================== */
.lgl_table_wrap {
	width: 100%;
	overflow-x: auto;
	margin-bottom: 3em;
	border: none;
}

.lgl_table {
	width: 100%;
	border-collapse: collapse;
	min-width: 700px;
	font-size: var(--fs-sm);
}

/* セル共通（横線のみにする） */
.lgl_table th,
.lgl_table td {
	padding: 25px 20px;
	border: none;
	border-bottom: 1px solid var(--color-border-light);
	vertical-align: top;
	line-height: 1.8;
}

/* 見出し行（ヘッダー） */
.lgl_table th {
	background-color: transparent;
	border-bottom: 2px solid var(--color-main); /* テーマカラーの太線 */
	color: var(--color-main);
	font-weight: bold;
	text-align: left;
	letter-spacing: 0.1em;
}

/* 左端の太字セル */
.lgl_table .is_bold {
	font-weight: bold;
	font-size: var(--fs-base);
	color: var(--color-main);
}

/* 表内のボタン（カプセル型） */
.lgl_table_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 10px;
	margin-top: 10px;
	padding: 8px 24px;
	background-color: transparent;
	color: var(--color-text-main) !important;
	border: 1px solid var(--color-border-dark);
	font-size: var(--fs-xs); /* 大きさはキープ！ */
	text-decoration: none !important;
	transition: all var(--transition-base);
	font-weight: bold;
	border-radius: 50px;
}

.lgl_table_btn:hover {
	background-color: var(--color-main);
	color: var(--color-bg-base) !important;
	border-color: var(--color-main);
}

/* ==========================================================================
   SP Responsive (Max-width: 768px)
   ========================================================================== */
@media (max-width: 768px) {
	/* サイトマップのSP調整 */
	.lgl_sitemap_list {
		grid-template-columns: 1fr; /* スマホは1列 */
		gap: 0;
	}
	.lgl_sitemap_item a {
		padding: 15px 0;
	}

	/* テーブルのSP調整 */
	.lgl_table th,
	.lgl_table td {
		padding: 15px;
	}
}
