@charset "UTF-8";

.policy-page {
	background-color: #f0f4f4;
}

.policy-page .common-title,
.policy-page .common-title .en-title {
	color: var(--akamaru-color-white);
}

/* policy-lead */

.policy-lead {
	margin-bottom: var(--space-lg);
}

.policy-lead-container {
	position: relative;
	overflow: hidden;
}

.policy-lead_title-wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	color: #2a476a;
	letter-spacing: var(--ls-loose);
	width: min(90%, 960px);
	padding: clamp(24px, 4vw, 48px);
	background: rgba(255, 255, 255, 0.68);
	backdrop-filter: blur(4px);
	border-radius: 24px;
}

.policy-lead_title-wrapper .title {
	font-size: clamp(2.2rem, 3vw, 4.2rem);
	line-height: 1.25;
	letter-spacing: 0.05em;
	margin-bottom: clamp(12px, 2vw, 24px);
}

.policy-lead_title-wrapper .sub-title {
	font-size: clamp(1.4rem, 1.8vw, 2.2rem);
	line-height: 1.6;
	opacity: 0.85;
}

.policy-lead_bg img {
	width: 100%;
	height: auto;
	object-fit: cover;
	filter: saturate(1.05) contrast(0.95);
}

@media screen and (max-width: 768px) {
	.policy-lead_title-wrapper {
		top: 50%;
		padding: var(--space-md) var(--space-md);
		border-radius: 16px;
	}

	.policy-lead_title-wrapper .title {
		font-size: clamp(1.8rem, 6vw, 2.4rem);
	}

	.policy-lead_title-wrapper .sub-title {
		font-size: clamp(1.2rem, 4.5vw, 1.6rem);
	}
	.policy-lead_bg img {
		height: 100%;
		min-height: 520px; /* ← 縦長感の正体 */
		object-fit: cover;
		object-position: center top;
	}
}

@media screen and (max-width: 500px) {
	.policy-lead_title-wrapper .title{
		margin-bottom: 6px;
	}
	.policy-lead_title-wrapper .sub-title {
		font-size: 10px;
	}
	.policy-lead_bg img{
		min-height: 320px;
	}
}

/* policy-content */

.policy-content {
	margin-bottom: var(--space-2xl);
}

.policy-content_media-container {
	position: relative;
	width: 100%;
	margin-left: auto;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--space-xl);
	overflow-y: visible;
	align-items: stretch;
	z-index: 1;
}

.policy-content_media-container .content {
	position: relative;
	color: #2a476a;
	background-color: var(--akamaru-color-white);
	padding: var(--space-lg);
	max-width: 780px;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
}

.policy-content_media-container .thumbnail {
	flex: 0 0 630px;
	height: auto;
	display: flex;
}

.policy-content_media-container .thumbnail img {
	transition: transform 0.6s ease, filter 0.6s ease;
	object-fit: cover;
}

@media (hover: hover) {
	.policy-content_media-container:hover .thumbnail img {
		transform: scale(1.03);
		filter: saturate(1.05);
	}
}

.policy-content_media-container .content .title {
	font-size: var(--fz-36);
	margin-bottom: clamp(20px, 2.5vw, 40px);
	line-height: 1.8;
}

.policy-content_media-container .text {
	font-size: var(--fz-20);
	line-height: 1.9;
	margin-bottom: var(--space-xs);
}

.policy-content_media-container .text:last-child {
	margin-bottom: 0;
}

.policy-content_thumbnail {
	margin-bottom: var(--space-xl);
}
.policy-content_thumbnail:last-child {
	margin-bottom: 0;
}

.policy-content_thumbnail img {
	margin: 0 auto;
	width: 100%;
	max-width: 1620px;
}

.policy-content_media-container .large-text {
	font-size: var(--fz-32);
	line-height: 1.5;
}

.policy-content_media-container-reverce {
	margin-right: auto;
	margin-left: 0;
	flex-direction: row-reverse;
}

.policy-content_last-content {
	position: relative;
	margin: clamp(90px, 10vw, 160px) auto;
	padding: clamp(40px, 5vw, 80px) clamp(20px, 6vw, 80px);
	text-align: center;
}

.policy-content_last-content::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 1px;
	background-color: var(--akamaru-color-navy_main);
	opacity: 0.4;
}

.policy-content_last-content .large-text {
	font-size: clamp(22px, 2.5vw, 32px);
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: #2a476a;
}

.policy-content_last-thumbnail img {
	margin-top: -40px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

@media screen and (min-width: 1620px) {
	.policy-content_media-container {
		margin-left: auto;
	}

	.policy-content_media-container:nth-last-of-type(odd) {
		margin-right: 20%;
	}
	.policy-content_media-container-reverce {
		margin-right: 50%;
		margin-left: auto;
	}
	.policy-content_media-container-reverce .thumbnail {
		width: 80%;
	}
	.policy-content_thumbnail img {
		width: 100%;
		max-height: 990px;
		object-fit: cover;
	}
}

@media screen and (max-width: 1024px) {
	.policy-content_media-container .thumbnail {
		flex: 0 0 45%;
	}

	.policy-content_media-container .content {
		max-width: none;
		padding: var(--space-md);
	}

	.policy-content_media-container .content .title {
		font-size: clamp(22px, 3vw, 32px);
	}

	.policy-content_media-container .text {
		font-size: clamp(15px, 2vw, 18px);
	}
}

@media screen and (max-width: 768px) {
	.policy-content_media-container {
		flex-direction: column;
		align-items: stretch;
	}
	.policy-content_media-container .content {
		box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
	}

	.policy-content_media-container-reverce {
		flex-direction: column;
	}

	.policy-content_media-container .thumbnail {
		flex: none;
		width: 100%;
	}

	.policy-content_media-container .thumbnail img {
		width: 100%;
		height: auto;
		object-fit: cover;
		aspect-ratio: 16 / 9;
		object-position: top;
	}

	.policy-content_thumbnail img {
		aspect-ratio: 3 / 4;
		object-fit: cover;
	}

	.policy-content_thumbnail img {
		aspect-ratio: 4 / 3;
	}

	.policy-content_media-container .content {
		padding: var(--space-md);
	}

	.policy-content_media-container .content .title {
		font-size: clamp(20px, 5vw, 26px);
	}

	.policy-content_media-container .large-text {
		font-size: clamp(18px, 4.5vw, 24px);
	}
}

@media screen and (max-width: 500px) {
	.policy-content_media-container .content {
		padding: 2em;
	}
	.policy-content_media-container .text {
		font-size: 13px;
	}
	.policy-content_last-content .large-text {
		font-size: 16px;
		line-height: 1.8;
		text-align: justify;
		letter-spacing: 0.01em;
	}
	.policy-content_media-container {
		margin-bottom:0;
	}
	.policy-content_last-content {
		margin: 60px 0;
	}
	.policy-content_media-container .content .title {
		font-size: 20px;
	}
}
