/* = Common Layout
-------------------------------------------------------------- */
.content-width {
	position: relative;
	width: 100%;
	max-width: 1340px;
	padding: 0 20px;
	margin: 0 auto;
	box-sizing: border-box;
}

.content-width.no-padding {
	max-width: 1280px;
	padding: 0;
}

.short-width {
	width: 100%;
	max-width: 990px;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
	z-index: 2;
}

.sec-inner {
	padding: 150px 0;
	position: relative;
}

.bg-black {
	background: linear-gradient(to bottom, #121212, #131314 75%, #1E2633 100%);
	color: #EDEDED;
	position: relative;
	overflow: clip;
	text-align: center;
}


/* Component
----------------------------------------------------------------- */
/* btn */
.btn {
	display: block;
	position: relative;
	box-sizing: border-box;
	width: 258px;
	padding: 20px;
	margin: 50px auto 0;
	font-size: 2.0rem;
	line-height: 1;
	text-align: center;
	border: 1px solid #EDEDED;
	transition: all 0.5s ease-in-out;
}

.btn::before {
	content: '';
	display: block;
	width: 38px;
	height: 1px;
	background: #EDEDED;
	position: absolute;
	right: -15px;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.5s ease-in-out;
}

.btn::after {
	content: '';
	display: block;
	width: 23px;
	height: 1px;
	background: #EDEDED;
	position: absolute;
	right: 0px;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.5s ease-in-out;
}

.btn:hover {
	text-decoration: none;
	background: #EDEDED;
	color: #0A0A0A;
	transition: all 0.5s ease-in-out;
}

.btn:hover::before {
	right: -25px;
	transition: all 0.5s ease-in-out;
}

.btn:hover::after {
	width: 13px;
	right: -1px;
	background: #0A0A0A;
	transition: all 0.5s ease-in-out;
}

.btn-sub {
	display: block;
	position: relative;
	box-sizing: border-box;
	width: 130px;
	padding: 15px 15px 15px 0;
	line-height: 1;
	border-bottom: 1px solid #EDEDED;
}

.btn-sub::before {
	content: '';
	display: block;
	width: 26px;
	height: 1px;
	background: #EDEDED;
	position: absolute;
	right: 0px;
	top: 50%;
	transform: translateY(-50%);
	transition: right 0.5s ease-in-out;
}

.btn-sub:hover {
	opacity: 1;
	text-decoration: none;
}

.btn-sub:hover::before {
	right: -13px;
	transition: right 0.5s ease-in-out;
}

/* ttl */
.ttl {
	font-weight: 400;
	line-height: 1;
	margin: 0;
}

.sec-ttl {
	font-size: 5.0rem;
	margin-bottom: 50px;
}

.sub-sec-ttl {
	font-size: 4.2rem;
	margin-bottom: 50px;
}

/* animation */
.fade-in {
	opacity: 0;
}

.inview {
	animation-name: fade-in;
	animation-duration: 1.5s;
	animation-timing-function: ease-in-out;
	animation-delay: 0.4s;
	animation-iteration-count: 1;
	animation-direction: normal;
	animation-fill-mode: forwards;
}

@keyframes fade-in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* background parallax */
.bg-img {
	display: block;
	width: 728px;
	/*aspect-ratio: 728/2484;*/
	aspect-ratio: 728/1242;
	position: absolute;
	/*animation: bg-scroll linear;
	animation-timeline: view();
	animation-range: cover 0% cover 100%;*/
	background-repeat: no-repeat;
	background-position: top center;
	background-size: contain;
}

/*@keyframes bg-scroll {
	to {
		background-position: bottom center;
	}
}*/

@media screen and (max-width: 767px) {
	/* ttl */
	.sec-ttl {
		font-size: 4.0rem;
	}

	.sub-sec-ttl {
		font-size: 3.5rem;
	}
}

/* header
----------------------------------------------------------------- */
#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: #0A0A0A;
	padding: 30px 0;
	z-index: 9999;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}

#header.visible {
	opacity: 1;
	transition: opacity 1s ease-in-out;
}

#header .img-box {
	width: 135px;
	margin: 0 auto;
}


/* bg-movie
----------------------------------------------------------------- */
.bg-movie {
	position: fixed;
	width: 100vw;
	height: 100vh;
	z-index: -1;
}

.bg-movie video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* mv
----------------------------------------------------------------- */
#mv {
	position: sticky;
	top: 0;
	width: 100vw;
	height: 100vh;
	z-index: -1;
}

#mv p {
	position: absolute;
	font-size: 1.3rem;
	bottom: 30px;
	right: 40px;
}

/* gradation
----------------------------------------------------------------- */
.gradation-wrap {
	position: relative;
	height: 160px;
}
.gradation {
	width: 100%;
	height: 160px;
	max-height: 100vh;
	position: absolute;
	bottom: 0;
	background: linear-gradient(to bottom, rgba(18, 18, 18, 0), rgba(18, 18, 18, 0.47) 60%, #121212 100%);
}

/* concept
----------------------------------------------------------------- */
#concept .bg-img01 {
	background-image: url(../images/bg_01.png);
	top: 0;
	left: calc(50% + 20px);
}

#concept .bg-img02 {
	background-image: url(../images/bg_02.png);
	top: 25%;
	right: calc(50% + 55px);
}

#concept .bg-img03 {
	background-image: url(../images/bg_01.png);
	top: 35%;
	left: calc(50% + 276px);
}

#concept .sec-inner {
	padding-top: 110px;
}

#concept .intro-box {
	text-align: center;
}

#concept .intro-box .txt-box {
	margin-bottom: 100px;
}

#concept .intro-box .txt-box .brand-name {
	margin-bottom: 75px;
}

#concept .intro-box .txt-box .brand-name .disc {
	font-size: 2.2rem;
}

#concept .intro-box .txt-box .brand-name .ttl {
	font-size: 5.3rem;
	margin-bottom: 40px;
}

#concept .intro-box .movie-box {
	width: 100%;
	max-width: 650px;
	margin: 0 auto 100px;
	background: #fff;
	font-size: 0;
}

#concept .intro-box .movie-box video {
	width: 100%;
}

#concept .concept-list .item + .item {
	margin-top: 100px;
}

#concept .concept-list .item {
	position: relative;
}

#concept .concept-list .item:nth-child(odd) .img-box {
	text-align: right;
}

#concept .concept-list .item:nth-child(even) .img-box {
	text-align: left;
}

#concept .concept-list .item .img-box img {
	width: 61%;
}

#concept .concept-list .item .txt-box {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

#concept .concept-list .item:nth-child(odd) .txt-box {
	text-align: left;
}

#concept .concept-list .item:nth-child(even) .txt-box {
	text-align: right;
}

#concept .concept-list .item .txt-box p {
	display: inline-block;
	text-align: left;
}

@media screen and (max-width: 767px) {
	#concept .bg-img01 {
		left: calc(50% - 400px);
	}

	#concept .bg-img02 {
		right: calc(50% - 400px);
	}

	#concept .bg-img03 {
		left: calc(50% - 150px);
	}

	#concept .intro-box .txt-box .brand-name .disc {
		font-size: 1.8rem;
	}

	#concept .intro-box .txt-box .brand-name .ttl {
		font-size: 3.3rem;
	}

	#concept .concept-list .item .img-box img {
		width: calc(100% - 20px);
	}

	#concept .concept-list .item .txt-box {
		position: static;
		transform: unset;
	}

	#concept .concept-list .item:nth-child(even) .txt-box {
		text-align: left;
	}
}

/* background
----------------------------------------------------------------- */
#background {
	background: rgba(10, 10, 10, 0.6);
	position: relative;
	z-index: -1;
}

#background.bg-visible::before {
	content: 'BACKGROUND';
	font-family: "Cinzel", serif;
	font-size: 12vh;
	line-height: 1;
	color: #ededed;
	opacity: 0.04;
	position: fixed;
	top: calc(90px - 12vh);
	left: calc(((100vw - 1280px) / 2) + 20px);
	transform: rotate(90deg);
	transform-origin: bottom left;
	z-index: -1;
}

#background .sec-inner {
	padding-bottom: 55px;
}

@media screen and (max-width: 1200px) {
	#background.bg-visible::before {
		left: 0;
	}
}

@media screen and (max-width: 767px) {
	#background .sec-inner {
		padding-bottom: 150px;
	}	
}

/* story
----------------------------------------------------------------- */
#story .sec-inner {
	padding: 0px;
}

#story .img01 {
	position: absolute;
	right: 0;
	top: 0;
	width: 45%;
	z-index: 1;
}

#story .img02 {
	margin-top: 20px;
	text-align: right;
}

#story .img02 img {
	width: 44%;
	margin-right: 23%;
}

@media screen and (max-width: 767px) {
	#story .img01 {
		position: relative;
		top: unset;
		right: unset;
		width: unset;
		text-align: right;
	}

	#story .img01 img {
		width: 60%;
	}

	#story .img02 {
		margin-top: -15%;
		text-align: left;
	}

	#story .img02 img {
		width: 60%;
		margin-right: unset;
	}	
}

/* origin
----------------------------------------------------------------- */
#origin {
	text-align: center;
}

#origin .sec-inner {
	padding-bottom: 0;
}

#origin .content-width {
	gap: 30px;
}

#origin .txt-box {
	margin: 120px 0 180px;
	flex-shrink: 0;
}

#origin .img02 {
	display: flex;
	align-items: end;
}

@media screen and (max-width: 767px) {
	#origin .txt-box {
		margin: unset;
	}

	#origin .img01 {
		text-align: left;
	}

	#origin .img02 {
		display: block;
		text-align: right;
	}

	#origin .img-box img {
		width: 70%;
		max-width: 430px;
	}	
}

/* product
----------------------------------------------------------------- */
#product .bg-img01 {
	width: 480px;
	background-image: url(../images/bg_01.png);
	top: 45%;
	left: calc(50% + 380px);
}

#product .bg-img02 {
	background-image: url(../images/bg_02.png);
	top: -30%;
	right: calc(50% + 50px);
}

#product .read-txt {
	font-size: 3.3rem;
	line-height: 1.4;
	margin-bottom: 25px;
}

#product .point {
	width: 100%;
	max-width: 560px;
	aspect-ratio: 560/525	;
	margin: 60px auto;
	position: relative;
}

#product .point .item {
	width: calc((300 / 560) * 100%);
	aspect-ratio: 1/1;
	border-radius: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-shadow: 0 0 30px rgba(237, 237, 237, 0.5);
	box-sizing: border-box;
	margin: 0 auto;
	background: rgba(237, 237, 237, 0.9);
	color: #0A0A0A;
}

#product .point .item01 {
	margin: 0 auto;
}

#product .point .item02,
#product .point .item03 {
	position: absolute;
	bottom: 0;
}

#product .point .item02 {
	left: 0;
}

#product .point .item03 {
	right: 0;
}

#product .point .item .ttl {
	font-size: 2.4rem;
}

#product .point .item .ttl span {
	font-size: 3.0rem;
}

#product .point .item p {
	font-size: 1.5rem;
	line-height: 1.6;
	margin-bottom: 0;
}

#product .product-list .item {
	gap: 40px;
	align-items: center;
}

#product .product-list .item + .item {
	margin-top: 80px;
}

#product .product-list .item .txt-box {
	text-align: left;
	font-size: 1.5rem;
}

#product .product-list .item .txt-box .ttl {
	font-size: 3.6rem;
	line-height: 1.17;
}

#product .product-list .item .txt-box .name-ja {
	font-size: 2.2rem;
	line-height: 1.41;
}

@media screen and (max-width: 767px) {
	#product .bg-img01 {
		left: 50%;
	}

	#product .bg-img02 {
		right: calc(50% - 250px);
	}

	#product .read-txt {
		font-size: 2.5rem;
	}

	#product .product-list .item .txt-box .ttl {
		font-size: 2.8rem;
	}

	#product .product-list .item .txt-box .name-ja {
		font-size: 1.8rem;
	}
}

@media screen and (max-width: 600px) {
	#product .point .item {
		border-width: 0.5vw;
	}

	#product .point .item .ttl {
		font-size: 4vw;
	}

	#product .point .item .ttl span {
		font-size: 5vw;
	}
	#product .point .item p {
		font-size: 2.5vw;
	}
}

/* supporter
----------------------------------------------------------------- */
#supporter .bg-img01 {
	background-image: url(../images/bg_01.png);
	top: -50%;
	right: calc(50% + 200px);
}

#supporter .bg-img02 {
	width: 550px;
	background-image: url(../images/bg_02.png);
	top: -80%;
	left: calc(50% + 290px);
}

@media screen and (max-width: 767px) {
	#supporter .bg-img01 {
		right: calc(50% - 600px);
	}

	#supporter .bg-img02 {
		left: calc(50% - 530px);
	}
}

/* footer
----------------------------------------------------------------- */
#footer {
	background: #121212;
}

#footer .footer-content {
	padding: 80px 0;
	align-items: flex-end;
	gap: 20px 80px;
	font-size: 1.4rem;
}

#footer .footer-content .logo {
	margin-bottom: 20px;
	text-align: left;
}

#footer .footer-content .copyright {
	flex-shrink: 0;
	font-size: 1.2rem;
}

@media screen and (max-width: 767px) {
	#footer .footer-content {
		text-align: center;
	}
}
