/* -----------------------------------------------------
 * page: home
 * -------------------------------------------------- */

.l-home-kv {
	position: relative;
	z-index: 2;
	overflow: hidden;
	height: 32.4rem;
	background-color: #fff;
}

.l-home-kv-bg {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: -webkit-filter 2s ease;
	transition: filter 2s ease;
	transition: filter 2s ease, -webkit-filter 2s ease;
	-webkit-filter: blur(1rem);
	filter: blur(1rem);
}

.l-home-kv-bg figure {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.l-home-kv-bg figure img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.l-home-kv-bg:is(.is-loaded *) {
	-webkit-filter: blur(0);
	filter: blur(0);
}

.l-home-kv-inner {
	display: flex;
	position: relative;
	z-index: 1;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	max-width: 140rem;
	height: 100%;
	margin: 0 auto;
	padding: 0 0 0 1.5rem;
	gap: 1rem;
}

.l-home-kv-inner .lead {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.3;
}

.l-home-kv-inner .lead span {
	display: inline-block;
}

.l-home-kv-inner span {
	display: block;
}

.l-home-kv-inner span span {
	display: inline-block !important;
}

.l-home-kv-inner span.caption {
	padding: 0 1rem;
	background-color: #d6000a;
	color: #fff;
	font-family: 'Georgia', serif;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2.5;
	letter-spacing: 0.05em;
}

.l-home-kv-inner span.sup {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
}

.l-home-mission {
	position: relative;
	z-index: 3;
	overflow: hidden;
	background: linear-gradient(to bottom, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0) 100%);
}

.l-home-mission-bg,
.l-home-mission-bg2,
.l-home-mission-bg3 {
	position: absolute;
	pointer-events: none;
}

.l-home-mission-bg {
	z-index: 1;
	width: 100%;
	aspect-ratio: 375/189;
}

.l-home-mission-bg img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.l-home-mission-bg2 {
	z-index: 3;
	top: 6rem;
	width: 100%;
	height: 45rem;
}

.l-home-mission-bg2 img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.l-home-mission-bg3 {
	z-index: 2;
	bottom: 0;
	left: -2rem;
	width: 100%;
	height: 39rem;
	background-color: rgba(0, 0, 0, 0.2);
}

.l-home-mission-contents {
	position: relative;
	z-index: 5;
	padding: 2rem 0;
	color: #fff;
}

.l-home-mission-contents h2 {
	pointer-events: none;
}

.l-home-mission-contents-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 2.6rem 3.8rem 8rem;
	gap: 2.6rem 0;
}

.l-home-mission-contents h3 {
	display: flex;
	position: relative;
	justify-content: center;
	align-items: center;
	height: 6rem;
	padding: 0 2.8rem;
	font-family: 'Noto Serif JP', serif;
	font-size: 2.3rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	letter-spacing: 0.05em;
}

.l-home-mission-contents h3::before,
.l-home-mission-contents h3::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	width: 1.6rem;
	height: 100%;
	border-top: 1px solid #fff;
	border-bottom: 1px solid #fff;
}

.l-home-mission-contents h3::before {
	left: 0;
	border-left: 1px solid #fff;
}

.l-home-mission-contents h3::after {
	right: 0;
	border-right: 1px solid #fff;
}

.l-home-mission-contents hr {
	width: 7rem;
	height: 1px;
	margin: 0;
	background-color: #fff;
}

.l-home-mission-contents p {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
}

.l-home-mission-contents .link {
	text-align: center;
}

.l-home-vision {
	position: relative;
	z-index: 0;
}

.l-home-vision-bg {
	position: fixed;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 50rem;
	background: url(/img/bg_home_vision_sp.webp) no-repeat 50% 50%/cover;
	pointer-events: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.l-home-vision-bg2 {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.l-home-vision-contents {
	padding: 2.8rem 1.2rem;
}

.l-home-vision-contents-inner {
	margin: 2.4rem 0 0;
}

.l-home-vision-contents-inner p {
	margin: 2.4rem 0 0;
	line-height: 1.5;
}

.l-home-vision-contents-inner .link {
	margin: 2.4rem 0 0;
}

.l-home-vision-contents-images {
	margin: 2.4rem 0 0;
}

.l-home-solution {
	position: relative;
	z-index: 3;
	overflow: hidden;
	background-color: #fff;
}

.l-home-solution-contents {
	padding: 2.8rem 1.2rem 4.8rem;
}

.l-home-solution-contents-inner {
	position: relative;
	z-index: 1;
}

.l-home-solution-contents-inner .c-heading-home-2 {
	margin: 2.4rem 0 0;
}

.l-home-solution-contents-inner p {
	margin: 2.4rem 0 0;
	line-height: 1.5;
}

.l-home-solution-contents-inner .link {
	margin: 2.4rem 0 0;
}

.l-home-solution-contents-image {
	margin: 2.4rem 0 0;
}

.l-home-group {
	position: relative;
	z-index: 1;
	overflow: hidden;
	background-color: #fff;
	background-attachment: fixed;
}

.l-home-group-bg {
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: url(/img/bg_home_group.webp) no-repeat 50% 50%/cover;
	pointer-events: none;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.l-home-group-contents {
	padding: 4.8rem 1.2rem 6rem;
}

.l-home-group-contents-inner {
	margin: 2.4rem 0 0;
}

.l-home-group-contents-inner .c-heading-home-2 {
	text-align: center;
}

.l-home-group-contents-inner .link {
	margin: 2.4rem 0 0;
	text-align: center;
}

.l-home-group-list {
	display: grid;
	margin: 2.4rem 0 0;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.l-home-group-list a {
	display: block;
	background-color: rgba(255, 255, 255, 0.8);
	transition: opacity 0.2s ease;
}

.l-home-group-list a img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

@media screen and (min-width: 768px) {
	.l-home-kv {
		height: 62.4rem;
	}

	.l-home-kv-inner {
		padding: 0 0 0 4rem;
		gap: 1.5rem;
	}

	.l-home-kv-inner .lead {
		font-size: 6.4rem;
		line-height: 1.25;
	}

	.l-home-kv-inner span.caption {
		padding: 0.5rem 3rem;
		font-size: 2.4rem;
		line-height: 2;
	}

	.l-home-kv-inner span.sup {
		font-size: 2.2rem;
		line-height: 1.8;
	}

	.l-home-mission-bg {
		right: 0;
		max-width: 116.5rem;
	}

	.l-home-mission-bg2 {
		width: calc(100vw - var(--scrollbar-width) - 8rem);
		height: 60rem;
		aspect-ratio: unset;
	}

	.l-home-mission-bg3 {
		left: -8rem;
		width: calc(100vw - var(--scrollbar-width) - 8rem);
	}

	.l-home-mission-contents {
		width: calc(100vw - var(--scrollbar-width) - 8rem);
		height: 70rem;
		padding: 6rem 0 8rem;
	}

	.l-home-mission-contents h2 {
		position: absolute;
		top: 13rem;
		left: 100%;
		line-height: 0.7;
		-ms-writing-mode: tb-rl;
		-webkit-writing-mode: vertical-rl;
		writing-mode: vertical-rl;
	}

	.l-home-mission-contents-inner {
		position: relative;
		max-width: 128rem;
		margin: 0 0 0 auto;
		padding: 12rem 0 12.5rem;
		gap: 3.6rem;
	}

	.l-home-mission-contents h3 {
		width: 56rem;
		padding: 0;
		font-size: 4rem;
	}

	.l-home-mission-contents hr {
		height: 0.4rem;
	}

	.l-home-mission-contents p {
		width: 56rem;
	}

	.l-home-vision-bg {
		top: -12rem;
		height: calc(100% + 12rem);
		background-image: url(/img/bg_home_vision.webp);
	}

	.l-home-vision-bg2 {
		top: -12rem;
		height: calc(100% + 12rem);
	}

	.l-home-vision-contents {
		display: grid;
		max-width: 128rem;
		margin: 0 auto;
		padding: 12rem 10.4rem;
		grid-template-columns: 1fr 44rem;
		grid-template-areas: 'heading images' 'inner images';
		gap: 2.4rem 12rem;
	}

	.l-home-vision-contents .c-heading-home {
		text-align: left;
		grid-area: heading;
	}

	.l-home-vision-contents-inner {
		margin: 0;
		grid-area: inner;
	}

	.l-home-vision-contents-images {
		margin: 0;
		grid-area: images;
	}

	.l-home-solution-contents {
		display: grid;
		align-items: center;
		max-width: 128rem;
		margin: 0 auto;
		padding: 10rem 4rem 8rem;
		grid-template-columns: 60rem 1fr;
		grid-template-areas: 'image inner';
		gap: 4.8rem 10rem;
	}

	.l-home-solution-contents-inner {
		grid-area: inner;
	}

	.l-home-solution-contents-inner .c-heading-home {
		text-align: left;
	}

	.l-home-solution-contents-image {
		margin: 0;
		grid-area: image;
	}

	.l-home-group-contents {
		max-width: 128rem;
		margin: 0 auto;
		padding: 6rem 4rem 12rem;
	}

	.l-home-group-contents-inner {
		margin: 4.8rem 0 0;
	}

	.l-home-group-contents-inner .link {
		margin: 4.8rem 0 0;
	}

	.l-home-group-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		margin: 4.8rem 0 0;
	}

	.l-home-group-list a {
		width: 26.5rem;
		height: 15rem;
	}
}

@media screen and (min-width: 1280px) {
	.l-home-mission-bg2 {
		left: 0;
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2 - 8rem);
	}

	.l-home-mission-bg3 {
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2 - 8rem);
	}

	.l-home-mission-contents {
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2 - 8rem);
	}
}

@media screen and (min-width: 1440px) {
	.l-home-mission-bg2 {
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2);
	}

	.l-home-mission-bg3 {
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2);
	}

	.l-home-mission-contents {
		width: calc(100vw - var(--scrollbar-width) - (100vw - 128rem - var(--scrollbar-width)) / 2);
	}
}

@media screen and (max-width: 767px) {
	.l-home-kv-bg figure img {
		-o-object-position: 16% 50%;
		object-position: 16% 50%;
	}
}

@media (hover: hover) {
	.l-home-group-list a:hover {
		opacity: 0.7;
	}
}