/* ==========================================================================
   プライバシーポリシー（page-privacy.php。Figma 78:3179・SP 237:5342）
   - PC: 左に目次（スクロールについてくる）・本文の幅 720px
   - SP: 目次は本文の上の開閉できる箱（初めは開いた状態。開閉は common.js）。表は項目名を上・値を下に積む
   ========================================================================== */
.p-privacy__inner {
	display: flex;
	gap: 160px; /* Figma の 160px */
	align-items: flex-start;
	padding-block: 96px 140px; /* Figma の 96px・140px */
}

/* 目次 */
.p-privacy__toc {
	position: sticky;
	top: calc(var(--header-height, 96px) + var(--space-lg) + var(--admin-bar-offset, 0px));
	flex-shrink: 0;
	width: 320px;
	max-height: calc(100vh - var(--header-height, 96px) - var(--space-3xl) - var(--admin-bar-offset, 0px));
	overflow-y: auto;
	padding: var(--space-lg);
	border-radius: var(--radius-lg);
	background: var(--color-bg-subtle);
}

.p-privacy__toc-title {
	margin-bottom: var(--space-xs);
	color: var(--color-text-secondary);
	font: var(--text-label-m);
	letter-spacing: var(--ls-label-m);
}

.p-privacy__toc-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.p-privacy__toc-item {
	display: block;
	color: var(--color-text-brand);
	font: var(--text-body-s);
	letter-spacing: var(--ls-body-s);
	text-decoration: none;
}

.p-privacy__toc-item:hover,
.p-privacy__toc-item.is-current {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.p-privacy__toc-item.is-current {
	font-weight: 700;
}

/* PC では目次を閉じない（SP で閉じたまま PC の幅にしても出す） */
@media (min-width: 768px) {
	.p-privacy__toc-list[hidden] {
		display: flex !important;
	}
}

/* 本文 */
.p-privacy__body {
	display: flex;
	flex-direction: column;
	gap: var(--space-4xl);
	width: 720px;
	min-width: 0;
}

.p-privacy__lead {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.p-privacy__section {
	display: flex;
	flex-direction: column;
	gap: 20px;
	scroll-margin-top: calc(var(--header-height, 96px) + var(--space-lg));
}

.p-privacy__heading {
	color: var(--color-text-primary);
	font: var(--text-h3);
	letter-spacing: var(--ls-h3);
}

.p-privacy__num {
	color: var(--color-text-brand);
}

.p-privacy__subheading {
	color: var(--color-text-primary);
	font: var(--text-h5);
	letter-spacing: var(--ls-h5);
}

.p-privacy__text,
.p-privacy__list,
.p-privacy__dd,
.p-privacy__table-td {
	color: var(--color-text-secondary);
	font: var(--text-body);
	letter-spacing: var(--ls-body);
}

.p-privacy__lead .p-privacy__text {
	color: var(--color-text-primary);
}

/* 表（名称・住所など／委託先） */
.p-privacy__table {
	border-top: 1px solid var(--color-border-default);
}

.p-privacy__table-row {
	display: flex;
	gap: var(--space-lg);
	padding-block: var(--space-md);
	border-bottom: 1px solid var(--color-border-default);
}

.p-privacy__table-th {
	flex-shrink: 0;
	width: 200px;
	color: var(--color-text-primary);
	font: var(--text-body-bold);
	letter-spacing: var(--ls-body-bold);
}

.p-privacy__table-td {
	flex: 1;
	min-width: 0;
	margin: 0;
}

.p-privacy__table-td a {
	color: inherit;
	text-decoration: none;
}

/* 電話番号: 押せる高さを 44px 以上に（見た目と行の高さは変えない。上下の margin で打ち消す） */
.p-privacy__table-td a[href^="tel:"] {
	display: inline-block;
	padding-block: 12px;
	margin-block: -12px;
}

/* 項目を上・説明を下 */
.p-privacy__dl {
	border-top: 1px solid var(--color-border-default);
}

.p-privacy__dl-row {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
	padding-block: var(--space-md);
	border-bottom: 1px solid var(--color-border-default);
}

.p-privacy__dt {
	color: var(--color-text-primary);
	font: var(--text-body-bold);
	letter-spacing: var(--ls-body-bold);
}

.p-privacy__dd {
	margin: 0;
}

/* 箇条書き（・／1. 2. 3.） */
.p-privacy__list,
.p-privacy__links {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	padding: 0;
	list-style: none;
}

.p-privacy__list-item {
	position: relative;
	padding-left: 20px;
}

.p-privacy__list-item::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.p-privacy__list--num {
	counter-reset: privacy;
}

.p-privacy__list--num .p-privacy__list-item {
	padding-left: 24px;
	counter-increment: privacy;
}

.p-privacy__list--num .p-privacy__list-item::before {
	content: counter(privacy) ".";
}

.p-privacy__links {
	color: var(--color-text-brand);
	font: var(--text-body);
	letter-spacing: var(--ls-body);
	text-wrap: balance; /* リンクの名前が「データの／使用」と2字だけ落ちないように、行の長さをそろえる（2026-10-05） */
}

.p-privacy__link {
	color: inherit;
	text-underline-offset: 4px;
}

/* お問い合わせ窓口（灰色の箱） */
.p-privacy__contact {
	padding: var(--space-md) var(--space-xl);
	border-radius: var(--radius-lg);
	background: var(--color-bg-subtle);
}

.p-privacy__contact .p-privacy__table-row:last-child {
	border-bottom: 0;
}

.p-privacy__contact .p-privacy__table-th {
	width: 120px;
}

.p-privacy__date {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
	align-items: flex-end;
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-border-default);
	color: var(--color-text-secondary);
	font: var(--text-body-s);
	letter-spacing: var(--ls-body-s);
	text-align: right;
}

@media (max-width: 1279px) {
	.p-privacy__inner {
		gap: var(--space-4xl);
	}

	.p-privacy__body {
		flex: 1;
		width: auto;
		max-width: 720px;
	}
}

@media (max-width: 1023px) {
	.p-privacy__toc {
		width: 260px;
	}
}

/* PC の幅が狭いとき: 本文の列が細いので、表の見出しと中身を縦に積む（SP と同じ） */
@media (min-width: 768px) and (max-width: 1023px) {
	.p-privacy__table-row {
		flex-direction: column;
		gap: var(--space-2xs);
	}

	.p-privacy__table-th,
	.p-privacy__contact .p-privacy__table-th {
		width: auto;
	}
}

@media (max-width: 767px) {
	.p-privacy__inner {
		flex-direction: column;
		gap: var(--space-2xl);
		align-items: stretch;
		padding-block: var(--space-2xl) var(--space-6xl);
	}

	/* SP: 開閉できる目次の箱（Figma 237:5439） */
	.p-privacy__toc {
		position: static;
		width: auto;
		max-height: none;
		overflow: visible;
		padding: var(--space-2xs) 20px;
	}

	.p-privacy__toc-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 48px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--color-text-secondary);
		font: var(--text-label-l);
		letter-spacing: var(--ls-label-l);
		text-align: left;
	}

	/* ＋／− の印（開いているときは −） */
	.p-privacy__toc-toggle-icon {
		position: relative;
		width: 24px;
		height: 24px;
		color: var(--color-text-primary);
	}

	.p-privacy__toc-toggle-icon::before,
	.p-privacy__toc-toggle-icon::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 5px;
		width: 14px;
		height: 2px;
		border-radius: 1px;
		background: currentColor;
		transform: translateY(-50%);
	}

	.p-privacy__toc-toggle-icon::after {
		transform: translateY(-50%) rotate(90deg);
		transition: transform 0.2s;
	}

	.p-privacy__toc-toggle[aria-expanded="true"] .p-privacy__toc-toggle-icon::after {
		transform: translateY(-50%) rotate(0deg);
	}

	.p-privacy__toc-list {
		gap: 0;
		padding-bottom: var(--space-xs);
	}

	.p-privacy__toc-item {
		display: flex;
		align-items: center;
		min-height: 44px;
		font: var(--text-body);
		letter-spacing: var(--ls-body);
	}

	.p-privacy__body {
		gap: var(--space-3xl);
		max-width: none;
	}

	.p-privacy__lead {
		gap: var(--space-md);
	}

	.p-privacy__section {
		gap: var(--space-md);
	}

	.p-privacy__table-row {
		flex-direction: column;
		gap: var(--space-2xs);
		padding-block: var(--space-sm);
	}

	.p-privacy__table-th,
	.p-privacy__contact .p-privacy__table-th {
		width: auto;
	}

	.p-privacy__contact {
		padding: var(--space-xs) 20px;
	}
}
