@charset "utf-8";
/* 装飾画像レイヤー: #privacy 内に配置。曲線パネル・テクスチャの前、本文の後ろに重ねる
   構造は contact_deco から流用しつつ privacy_deco に rename（CSSは contact.css と独立） */
#privacy_deco {
	width: 100%;
	height: 100vh;
	overflow: clip;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	pointer-events: none;
}
	.privacy_deco__images {
		width: 100%;
		height: 100%;
		position: relative;
		z-index: 2;
	}
		.privacy_deco__images__item {
			height: auto;
			position: absolute;
		}
		.privacy_deco__images__item._01 {
			width: 149px;
			top: -158px;
			right: 571px;
		}
		.privacy_deco__images__item._02 {
			width: 140px;
			top: -59px;
			right: 394px;
		}
		.privacy_deco__images__item._03 {
			width: 140px;
			top: -39px;
			right: 185px;
		}
		.privacy_deco__images__item._04 {
			width: 140px;
			top: -78px;
			right: -7px;
		}
		.privacy_deco__images__item._05 {
			width: 140px;
			top: 163px;
			right: -60px;
		}

#privacy {
	width: 100%;
	height: auto;
	padding: 0 0 292px;
	background-color: var(--c-blue);
	position: relative;
	z-index: 3;
	overflow-x: clip;
}
	#privacy::before,
	#privacy::after {
		content: '';
		display: block;
		width: calc((1740 / var(--vw)) * 100vw);
		height: 100%;
		border-radius: 0 0 50% 50% / 0 0 525px 525px;
		position: absolute;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
	}
	#privacy::before {
		background-color: var(--c-bg-gray);
		z-index: 0;
	}
	#privacy::after {
		background-image: url(../image/bg@pc.webp);
		background-size: 100% auto;
		background-position: top center;
		background-repeat: repeat;
		mix-blend-mode: multiply;
		opacity: .3;
		z-index: 1;
		pointer-events: none;
	}
	.privacy__inner {
		width: 100%;
		height: auto;
	}
		.privacy__head {
			width: 100%;
			height: auto;
			padding: 206px 0 76px;
			margin: 0 auto;
			border-bottom: solid 1px var(--c-light-gray);
			position: relative;
			z-index: 3;
		}
			.privacy__heading {
				width: calc((1200 / var(--vw)) * 100%);
				height: auto;
				margin: 0 auto;
			}
				.privacy__heading__main_text {
					width: 413px;
					height: auto;
					margin: 0 auto 30px 0;
				}
					.privacy__heading__main_text svg {
						fill: var(--c-black);
					}
				.privacy__heading__sub_text {
					color: var(--c-black);
				}
		.privacy__body {
			width: calc((1000 / var(--vw)) * 100%);
			height: auto;
			padding: 60px 0 0;
			margin: 0 auto;
			position: relative;
			z-index: 3;
		}
			.privacy__body__lead {
				width: 100%;
				height: auto;
				margin: 0 auto 20px;
				font-size: 22px;
				font-weight: 700;
				line-height: 1.5;
				letter-spacing: 0.05em;
				color: var(--c-main-blue);
			}
			.privacy__list {
				display: flex;
				flex-direction: column;
				gap: 30px;
				width: 100%;
				height: auto;
			}
				.privacy__list__item {
					width: 100%;
					height: auto;
				}
					.privacy__list__item dt {
						width: 100%;
						height: auto;
						margin: 0 auto 20px;
						font-size: 16px;
						font-weight: 900;
						line-height: 2;
						letter-spacing: 0.1em;
						color: var(--c-black);
					}
					.privacy__list__item dd {
						width: 100%;
						height: auto;
					}
						.privacy__list__item dd p {
							width: 100%;
							height: auto;
							font-size: 14px;
							font-weight: 500;
							line-height: 1.8;
							letter-spacing: 0.05em;
							color: var(--c-black);
						}
						.privacy__list__item dd ol {
							width: 100%;
							height: auto;
							font-size: 14px;
							font-weight: 500;
							line-height: 1.8;
							letter-spacing: 0.05em;
							color: var(--c-black);
							counter-reset: privacy-list;
						}
							.privacy__list__item dd ol > li {
								padding-left: 1.2em;
								position: relative;
								counter-increment: privacy-list;
							}
							.privacy__list__item dd ol > li::before {
								content: counter(privacy-list) ".";
								position: absolute;
								top: 0;
								left: 0;
							}
						.privacy__list__item dd address {
							width: 100%;
							height: auto;
							margin: 25px auto 0;
							font-size: 14px;
							font-weight: 500;
							font-style: normal;
							line-height: 1.8;
							letter-spacing: 0.05em;
							color: var(--c-black);
						}
							.privacy__list__item dd address a {
								color: var(--c-black);
								text-decoration: underline;
							}
							@media (any-hover: hover) {
								.privacy__list__item dd address a:hover {
									text-decoration: none;
								}
							}
	.curve_character {
		width: 64px;
		height: auto;
		position: absolute;
		bottom: -24px;
		left: 50%;
		z-index: 3;
		transform: translateX(-50%);
	}
		.curve_character img {
			display: block;
			width: 100%;
			height: auto;
		}

/* ================================================== PC（〜1440 細分: 1200 コンテンツ幅を 90% に縮退） */
@media all and (min-width: 1025px) and (max-width: 1440px) {
		.privacy__body {
			width: 90%;
			max-width: 1200px;
		}
}


/* ================================================== SP */
@media all and (max-width: 1024px) {
/* PRIVACY_DECO */
		.privacy_deco__images__item._01 {
			width: calc((74.39 / var(--vw)) * 100vw);
			top: calc((-84 / var(--vw)) * 100vw);
			right: calc((308.59 / var(--vw)) * 100vw);
		}
		.privacy_deco__images__item._02 {
			width: calc((69.87 / var(--vw)) * 100vw);
			top: calc((-34.54 / var(--vw)) * 100vw);
			right: calc((220.35 / var(--vw)) * 100vw);
		}
		.privacy_deco__images__item._03 {
			width: calc((69.76 / var(--vw)) * 100vw);
			top: calc((-24.66 / var(--vw)) * 100vw);
			right: calc((116.17 / var(--vw)) * 100vw);
		}
		.privacy_deco__images__item._04 {
			width: calc((69.83 / var(--vw)) * 100vw);
			top: calc((-44.1 / var(--vw)) * 100vw);
			right: calc((20.42 / var(--vw)) * 100vw);
		}
		.privacy_deco__images__item._05 {
			width: calc((69.78 / var(--vw)) * 100vw);
			top: calc((76.03 / var(--vw)) * 100vw);
			right: calc((-6 / var(--vw)) * 100vw);
		}

/* PRIVACY */
#privacy {
	width: 100%;
	height: auto;
	padding: 0 0 calc((195 / var(--vw)) * 100vw);
	background-color: var(--c-blue);
	position: relative;
	z-index: 3;
	overflow-x: clip;
}
	#privacy::before,
	#privacy::after {
		width: calc((487 / var(--vw)) * 100vw);
		height: calc((100% - (32 / var(--vw)) * 100vw));
		border-radius: 0 0 50% 50% / 0 0 calc((166 / var(--vw)) * 100vw) calc((166 / var(--vw)) * 100vw);
	}
		.privacy__head {
			padding: calc((156 / var(--vw)) * 100vw) 0 calc((53 / var(--vw)) * 100vw);
		}
			.privacy__heading {
				width: 100%;
			}
				.privacy__heading__main_text {
					width: calc((300 / var(--vw)) * 100vw);
					margin: 0 auto calc((10 / var(--vw)) * 100vw);
				}
				.privacy__heading__sub_text {
					text-align: center;
				}
		.privacy__body {
			width: calc((334 / var(--vw)) * 100%);
			padding: calc((50 / var(--vw)) * 100vw) 0 0;
		}
			.privacy__body__lead {
				margin: 0 auto calc((20 / var(--vw)) * 100vw);
				font-size: calc((22 / var(--vw)) * 100vw);
				letter-spacing: 0.05em;
			}
			.privacy__list {
				gap: calc((30 / var(--vw)) * 100vw);
			}
					.privacy__list__item dt {
						margin: 0 auto calc((20 / var(--vw)) * 100vw);
						font-size: calc((16 / var(--vw)) * 100vw);
					}
						.privacy__list__item dd p {
							font-size: calc((14 / var(--vw)) * 100vw);
						}
						.privacy__list__item dd ol {
							font-size: calc((14 / var(--vw)) * 100vw);
						}
							.privacy__list__item dd ol > li {
								padding-left: 1.2em;
							}
						.privacy__list__item dd address {
							margin: calc((25 / var(--vw)) * 100vw) auto 0;
							font-size: calc((14 / var(--vw)) * 100vw);
						}
	.curve_character {
		width: calc((64 / var(--vw)) * 100vw);
		bottom: calc((10 / var(--vw)) * 100vw);
	}
}
