@charset "UTF-8";
/* -------------------------------------------------------------------------

プライバシーポリシー info/JP共通
※2026年1月1日以降

------------------------------------------------------------------------- */
.privacy {
	--_privacy_color_background: #fff0f0;
	--_privacy_color_main: #e5577a;
}


/* ナンバリング共通CSS */
[class*="privacy-number--"] {
	counter-reset: var(--_counter-name);
}
[class*="privacy-number__item"] {
	counter-increment: var(--_counter-name);
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
}
:where([class*="privacy-number--"]) [class*="privacy-number__item"]::before {
	--_width: 1.5em;
	content: var(--_counter-style);
	margin-right: 0.5em;
	width: var(--_width);
	text-align: right;
}

/* 1. */
[class*="privacy-number--decimal"] {
	--_counter-style: counter(var(--_counter-name), decimal) '.';
}
.privacy-number--decimal {
	--_counter-name: number-decimal;
}
.privacy-number--decimal2 {
	--_counter-name: number-decimal2;
}

/* ① */
[class*="privacy-number--round-decimal"] {
	--_counter-style: counter(var(--_counter-name), decimal);
}
[class*="privacy-number--round-decimal"] [class*="privacy-number__item"]::before {
	--_width: 1.46em;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--_width);
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 0.78em;
	line-height: 1;
	translate: 0 calc((var(--_width) - 1em) * 0.5);
	text-align: center;
	letter-spacing: -0.05em;
}

/* （1） */
[class*="privacy-number--parentheses"] {
	--_counter-style: '(' counter(var(--_counter-name), decimal) ')';
}
[class*="privacy-number--parentheses"] [class*="privacy-number__item"]::before {
	--_width: 2em;
}
.privacy-number--parentheses {
	--_counter-name: number-parentheses;
}
.privacy-number--parentheses2 {
	--_counter-name: number-parentheses2;
}


.privacy__section + .privacy__section {
	margin-top: 5rem;
}
.privacy__section-title {
	margin-bottom: 2.5rem;
	padding-bottom: 0.5em;
	border-bottom: 3px solid currentColor;
	color: var(--_privacy_color_main);
	font-weight: bold;
	font-size: 1.25rem;
	line-height: 1.3;
}

.privacy__block + .privacy__block {
	margin-top: 4rem;
}
.privacy__block-head {
	margin-bottom: 1.5rem;
	font-weight: bold;
	font-size: 1.125em;
	line-height: 1.3;
}
.privacy__block-head::before {
	width: auto;
}

[class*="privacy__box"] + [class*="privacy__box"] {
	margin-top: 2rem;
}
.privacy__box--right {
	display: grid;
	justify-content: end;
}
.privacy__inner-head {
	margin-bottom: 1rem;
	font-weight: bold;
	line-height: 1.3;
}
.privacy__inner-head::before {
	width: auto;
}

.privacy__unit + .privacy__unit {
	margin-top: 1.5rem;
}
.privacy__text + .privacy__text {
	margin-top: 1rem;
}

.privacy__anchor {
	color: #d9335c;
	text-decoration: underline;
}
.privacy__anchor:hover {
	text-decoration: none;
}


/* テーブルレイアウト */
.privacy__table,
[class*="privacy__table--"] {
	--_border: 1px solid var(--_privacy_color_main);
	display: grid;
	grid-template-columns: repeat(2, auto);
	border: var(--_border);
}
[class*="privacy__table--"]:where(:has(.privacy__table-head)) {
	grid-template-columns: minmax(auto, 44%) 1fr;
}
.privacy__table--borderless {
	--_border: none;
}
.privacy__table--3 {
	grid-template-columns: repeat(3, auto);
}
.privacy__table-row {
	display: grid;
	grid-template-columns: subgrid;
	grid-column: 1 / -1;
}
.privacy__table-row + .privacy__table-row {
	border-top: var(--_border);
}
.privacy__table-head::before {
	width: auto;
}
.privacy__table-cell {
	padding: 1rem;
}
.privacy__table-cell + .privacy__table-cell {
	border-left: var(--_border);
}

@media not screen and (min-width: 820px) {
	.privacy__table--stack {
		grid-template-columns: 100%;
		gap: 1.5rem;
		border: unset;
	}
	.privacy__table--stack .privacy__table-row {
		display: grid;
		grid-template-columns: 100%;
		border: var(--_border);
	}
	.privacy__table--stack .privacy__table-cell + .privacy__table-cell {
		border-top: var(--_border);
		border-left: unset;
	}
}


/* プライバシーマーク */
.privacy__privacy-mark {
	gap: 1rem;
	padding: 32px 24px;
	background-color: var(--_privacy_color_background);
	border-radius: 8px;
}
.privacy__privacy-mark-image {
	margin: auto;
	max-width: 120px;
}

@media screen and (min-width: 768px) {
	.privacy__privacy-mark {
		padding: 32px;
	}
}
@media screen and (min-width: 1024px) {
	.privacy__privacy-mark-image {
		margin: auto 0 auto auto;
		max-width: 180px;
	}
}
@media not screen and (min-width: 768px) {
	.privacy__privacy-mark {
		display: grid;
		grid-template-columns: 100%;
	}
}
