@charset "UTF-8";

/*mv
----------------------------------------*/
.mv {
	z-index: 0;
}
.mv_img {
	width: 100%;
	height: 100svh;
}
.mv_img img,
.mv_img video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	left: 0;
	top: 0;
}

.mv_txt {
	position: absolute;
	display: flex;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	max-width: 31.8rem;
}
@media only screen and (max-width: 768px) {
	.mv_txt {
		display: none;
	}
	.mv_img {
		height: 100%;
	}
}

/*essence
----------------------------------------*/
.essence {
	z-index: 2;
	padding-top: 18.3rem;
	padding-bottom: 16.8rem;
}

.essence_bg {
	position: absolute;
	z-index: 0;
	max-width: 95.8rem;
	top: 1.87rem;
	right: -9rem;
	transform: rotate(8.25deg);
}

.essence_inner {
	margin-left: 13.3rem;
	display: flex;
	column-gap: 17rem;
}

.essence_ttl {
	margin-bottom: 7.3rem;
}
.essence_ttl h2 {
	margin-bottom: 9.3rem;
	margin-left: -13.3rem;
}
.essence_ttl h2 img {
	height: 8.3rem;
}
.essence_ttl h2::before {
	content: "";
	position: absolute;
	width: 49.6rem;
	height: 1px;
	background: #403E3E;
	left: 0;
	bottom: .2rem;
}
.essence_ttl h3 {
	font-size: 3rem;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.86;
}
.essence_ttl h3 span {
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	line-height: inherit;
	display: block;
	margin-bottom: 1.5rem;
}
.essence_ttl h3 span.en {
	font-size: 1.3rem;
	font-weight: 100;
	margin-top: .6rem;
	margin-bottom: 0;
	color: #A99D5D;
}

.essence_txt {
	margin-top: 21.7rem;
}
.essence_txt h4 {
	font-size: 3.4rem;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-bottom: .7rem;
	color: #A99D5D;
}
.essence_txt p {
	font-size: 2.5rem;
	margin-bottom: 3.2rem;
	line-height: 1.84;
}

@media only screen and (max-width: 768px) {
	.essence {
		padding-top: 7rem;
		padding-bottom: 32.6rem;
	}

	.essence_bg {
		max-width: 66rem;
		top: 20.5rem;
		right: -4.3rem;
	}
	.essence_bg img {
		width: auto;
  		max-width: inherit;
	}

	.essence_inner {
		margin-left: 3rem;
		display: block;
	}

	.essence_ttl {
		margin-bottom: 3.4rem;
	}
	.essence_ttl h2 {
		margin-bottom: 5.6rem;
		margin-left: -3rem;
	}
	.essence_ttl h2 img {
		width: auto;
		height: 4.5rem;
	}
	.essence_ttl h2::before {
		width: 27.3rem;
		bottom: .1rem;
	}
	.essence_ttl h3 {
		font-size: 2.5rem;
		line-height: 1.68;
	}
	.essence_ttl h3 span {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}
	.essence_ttl h3 span.en {
		font-size: 1.3rem;
	}

	.essence_txt {
		margin-top: 3.4rem;
	}
	.essence_txt h4 {
		font-size: 3rem;
		margin-bottom: .6rem;
	}
	.essence_txt p {
		font-size: 2rem;
		margin-bottom: 1.4rem;
	}
}



/*story
----------------------------------------*/
.story {
	background: #151515;
	color: #fff;
	padding-top: 12rem;
	padding-bottom: 14.6rem;
}
.story_inner {
	margin-left: 13.3rem;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	column-gap: 8.8rem;
}
.story .story_img01 {
	position: absolute;
	max-width: 44.4rem;
	left: 0;
	top: -57rem;
}
.story .story_img02 {
	position: absolute;
	max-width: 39.8rem;
	left: 0;
	bottom: -14.6rem;
}
.story h2 {
	width: 71.7rem;
	margin-bottom: 13.5rem;
}
.story h2 img {
	height: 7.3rem;
}
.story h2::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 1px;
	background: #fff;
	left: 0;
	bottom: .1rem;
}

.story_ttl h3 {
	font-size: 3rem;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.86;
}
.story_ttl h3 span {
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	line-height: inherit;
	display: block;
	margin-bottom: 1.5rem;
}
.story_ttl h3 span.en {
	font-size: 1.3rem;
	font-weight: 100;
	margin-top: .6rem;
	margin-bottom: 0;
	color: #A99D5D;
}

.story_txt {
	margin-top: 4.5rem;
}
.story_txt p {
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	margin-bottom: 2.2rem;
	line-height: 2.14;
}


@media only screen and (max-width: 768px) {
	.story {
		padding-top: 15rem;
		padding-bottom: 4rem;
	}
	.story_inner {
		margin: 0 3rem;
		display: block;
	}
	.story .story_img01 {
		max-width: 100%;
		top: -42.2rem;
	}
	.story .story_img02 {
		display: none;
	}
	.story h2 {
		width: 25.8rem;
		margin-bottom: 4.6rem;
	}
	.story h2 img {
		width: auto;
		height: 100%;
	}

	.story_ttl h3 {
		font-size: 2.5rem;
		line-height: 1.68;
	}
	.story_ttl h3 span {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}
	.story_ttl h3 span.en {
		font-size: 1.3rem;
		margin-top: .6rem;
	}

	.story_txt {
		margin-top: 3.5rem;
	}
	.story_txt p {
		font-size: 1.3rem;
		margin-bottom: 1.6rem;
		line-height: 2.3;
	}
}



/*sub_contents
----------------------------------------*/
.sub_contents {
	color: #fff;
}
.sub_contents_video {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	max-height: 84rem;
	overflow: hidden;
}
.sub_contents_video img,
.sub_contents_video video {
	height: 105dvh;
	width: 100%;
	object-fit: cover;
}

.sub_contents_inner {
	padding-top: 14.4rem;
	padding-bottom: 14.4rem;
	padding-left: 13.3rem;
	position: absolute;
	top: 0;
	width: 100%;
	display: flex;
	column-gap: 9.8rem;
}

.sub_contents_inner h2 {
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-top: 2.3rem;
	margin-bottom: .6rem;
}
.sub_contents_inner h2 span {
	display: block;
	font-size: 3rem;
	letter-spacing: 0.005em;
	margin-top: .8rem;
}

.sub_contents_item01 {
	max-width: 35.2rem;
}
.sub_contents_product_item {
	max-width: 78rem;
	margin: 0 0 0 auto;
}
.sub_contents_product_slide {
	overflow: hidden;
	margin-right: -10.86rem;
	max-height: 42.5rem;
}
.sub_contents_product_slide figure {
	width: 100%;
	float: left;
	margin-right: .5rem;
}


@media only screen and (max-width: 768px) {
	.sub_contents {
		min-height: 124.4rem;
	}

	.sub_contents_inner {
		padding-top: 8rem;
		padding-bottom: 7.7rem;
		padding-inline: 5rem;
		display: block;
	}
	.sub_contents_inner h2 {
		margin-top: 2rem;
		margin-bottom: 2rem;
	}
	.sub_contents_inner h2 span {
		margin-top: .6rem;
	}
	.sub_contents_item01 {
		width: 100%;
		margin: 0 auto 5rem;
	}
	.sub_contents_product_item {
		max-width: 100%;
		margin-right: 0;
	}
	.sub_contents_product_slide {
		margin-right: -9rem;
		max-height: 27.3rem;
	}

}
