@charset "UTF-8";
/* CSS Document */

html,
body {
	padding: 0;
	margin: 0;
	font-family: "Hanken Grotesk", sans-serif;
}
img,video {
	width: 100%;
	border: none;
}
ul,li {
	padding: 0;
	margin: 0;
	list-style: none;
}
h1,h2,h3,h4,p,a {
	margin: 0;
	padding: 0;
	text-decoration: none
}

#ch {
	position: relative;
}
@media only screen and (max-width: 768px)  {
	
}

#main_visual {
	width: 100%;
	height: 100vh;
	position: sticky;
	top: 0;
}
#main_visual .visual {
	background: url("../img/visual.webp") no-repeat center 10%;
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
#main_visual h1 {
	position: absolute;
	top: 50%;
	left: 27%;
	transform: translate(0,-50%);
	width: 13%;
	line-height: 0;
}
#main_visual h2 {
	position: absolute;
	top: 50%;
	right: 27%;
	transform: translate(0,-50%);
	width: 30%;
	line-height: 0;
}
@media only screen and (max-width: 768px)  {
	#main_visual {
		height: 100svh;
	}
	#main_visual h1 {
		top: auto;
		bottom: 22%;
		left: 15%;
		width: 32%;
	}
	#main_visual h2 {
		right: 15%;
		width: 70%;
	}
}

#main_contents {
	position: sticky;
	z-index: 10;
	padding: 1px 0;
	overflow: hidden;
	
}
#main_contents::before {
	content: "";
	position: absolute;
	top: -5%;
	left: -5%;
	width: 110%;
	height: 110%;
	background: rgba(255,255,255,0.92);
	
}
#main_contents .logo {
	max-width: 120px;
	width: 20%;
	margin: 10% auto;
	position: relative;
	z-index: 1
}
@media only screen and (max-width: 768px)  {
	#main_contents .logo {
		margin: 25% auto;
	}
}

#main_contents .inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	column-gap: 6vw;
	box-sizing: border-box;
	padding: 0 6vw;
}
#main_contents .inner .box {
	margin-bottom: 6vw;
	overflow: hidden;
}
#main_contents .inner .box .img {
	position: relative;
	overflow: hidden;
	line-height: 0;
}
#main_contents .inner .box .img img:nth-of-type(2) {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%
}
#main_contents .inner .box a {
	cursor: pointer;
}
#main_contents .inner .box .img {
	transition: 1.5s;
}
#main_contents .inner .box:hover  .img{
	display: block;
	transform: scale(1.08)
}
@media only screen and (max-width: 768px)  {
	#main_contents .inner {
		grid-template-columns: 1fr 1fr;
		column-gap: 4vw;
		padding: 0;
	}
	#main_contents .inner .box {
		margin-bottom: 4vw;
	}
}


.remodal-bg.remodal-is-opening,
.remodal-bg.remodal-is-opened {
  -webkit-filter: blur(3px);
  filter: blur(3px);
}


.remodal-overlay {
  background: rgba(255, 255, 255, 0.9);
}

.remodal-overlay.remodal-is-opening,
.remodal-overlay.remodal-is-closing {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}

.remodal-overlay.remodal-is-opening {
  -webkit-animation: remodal-overlay-opening-keyframes 0.3s;
  animation: remodal-overlay-opening-keyframes 0.3s;
}

.remodal-overlay.remodal-is-closing {
  -webkit-animation: remodal-overlay-closing-keyframes 0.3s;
  animation: remodal-overlay-closing-keyframes 0.3s;
}
.remodal,
.remodal-wrapper:after {
  vertical-align: middle;
}

.remodal {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 70%;
	margin: 3% auto;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.remodal.remodal-is-opening,
.remodal.remodal-is-closing {
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}

.remodal.remodal-is-opening {
  -webkit-animation: remodal-opening-keyframes 0.3s;
  animation: remodal-opening-keyframes 0.3s;
}

.remodal.remodal-is-closing {
  -webkit-animation: remodal-closing-keyframes 0.3s;
  animation: remodal-closing-keyframes 0.3s;
}



.remodal-close {
  position: absolute;
  bottom: 0;
  right: 0;
  display: block;
  overflow: visible;
  width: 70px;
  height: 70px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
	border: none;
	background: none;
	z-index: 100
}


.remodal-close:before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 70px;
	height: 70px;
	background: url("../img/close.svg") no-repeat;
	background-size: 70px;
  content: "";
  text-align: center;
}
@media only screen and (max-width: 768px)  {
	.remodal {
	  width: 90%;
		padding: 5% 0;
		margin: 0 auto;
	}
	.remodal,
	.remodal-wrapper:after {
	  vertical-align:top
	}
	.remodal-close {
	  position: absolute;
	  bottom: 2%;
	  right: 0;
}
}




/* Keyframes
   ========================================================================== */

@-webkit-keyframes remodal-opening-keyframes {
  from {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);

    opacity: 0;
  }
  to {
    -webkit-transform: none;
    transform: none;

    opacity: 1;
  }
}

@keyframes remodal-opening-keyframes {
  from {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);

    opacity: 0;
  }
  to {
    -webkit-transform: none;
    transform: none;

    opacity: 1;
  }
}

@-webkit-keyframes remodal-closing-keyframes {
  from {
    -webkit-transform: scale(1);
    transform: scale(1);

    opacity: 1;
  }
  to {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);

    opacity: 0;
  }
}

@keyframes remodal-closing-keyframes {
  from {
    -webkit-transform: scale(1);
    transform: scale(1);

    opacity: 1;
  }
  to {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);

    opacity: 0;
  }
}

@-webkit-keyframes remodal-overlay-opening-keyframes {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes remodal-overlay-opening-keyframes {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@-webkit-keyframes remodal-overlay-closing-keyframes {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes remodal-overlay-closing-keyframes {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}


.modal_box {
	position: relative;
	text-align: left;
	width: 100%;
	margin: 0 auto;
}
.modal_box .title {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0,-50%);
	width: 45%;
	filter: invert(1)
}
.modal_box .title img:nth-of-type(1) {
	position: absolute;
	top: 50%;
	left: 0%;
	transform: translate(0,-50%);
	width: 26%;
	line-height: 0;
}
.modal_box .title img:nth-of-type(2) {
	position: absolute;
	top: 50%;
	right: 0%;
	transform: translate(0,-50%);
	width: 66%;
	line-height: 0;
}
.modal_box .js-swiper {
	width: 50%;
	margin: 0;
	line-height: 0;
}
.modal_box .list {
	position: absolute;
	bottom: 0;
	left: 55%;
	z-index: 10
}
.modal_box .list li a,.modal_box .list li p {
	display: inline-block;
	font-size: 10px;
	letter-spacing: 1px;
	line-height: 1;
	padding: 8px 0;
	position: relative;
	color:#000;
}
.modal_box .list li a::after {
	content: "_BUY";
	font-weight: 600;
}
.modal_box .list li .shop::after {
	content: "_SHOP ONLY";
	font-weight: 400;
}
.swiper-pagination {
  position: absolute;
  top: 10px!important;
  right: 10px!important;
	left: auto!important;
  bottom: auto!important;
	width: auto!important;

  display: flex;
  flex-direction: column; /* 縦並び */
  gap: 8px;
	z-index: 10
}
.swiper-pagination-bullet {
  margin: 0 !important; /* デフォルトmargin打ち消し */
}
.swiper-pagination-bullet {
  background: none;
	box-sizing: border-box;
	border: 1px solid #000;
  height: 8px;
  width: 8px;
}
.swiper-pagination-bullet-active {
	background: #000;
}
@media only screen and (max-width: 768px)  {
	.modal_box .js-swiper {
		width: 100%;
	}
	.modal_box .list {
		position: relative;
		bottom: auto;
		left: auto;
		z-index: 10;
		margin-top: 10%;
	}
	.modal_box .title {
		position: relative;
		top: auto;
		right: auto;
		transform: translate(0);
		width:45%;
		margin-top: 25%;
	}
	.modal_box .title img:nth-of-type(1) {
		position: relative;
		top: auto;
		left: auto;
		transform: translate(0);
		width: 70%;
	}
	.modal_box .title img:nth-of-type(2) {
		position: relative;
		top: auto;
		right: auto;
		transform: translate(0);
		width: 100%;
	}
	.modal_box .list li a,.modal_box .list li p {
		display: inline-block;
		font-size: 9px;
	}
}


#main_foot {
	margin: 0% auto;
	padding: 5% 0;
	background: rgba(255,255,255,0.92);
	position: relative;
	z-index: 10
}
#main_foot .logo {
	max-width: 200px;
	width: 30%;
	margin: 0 auto;
}
#main_foot .copy {
	font-size: 10px;
	text-align: center;
	padding: 5% 0 0;
}
@media only screen and (max-width: 768px)  {
	#main_foot {
		margin: 0% auto;
		padding: 25% 0;
		background: rgba(255,255,255,0.92);
		position: relative;
		z-index: 10
	}
	
}



#main_visual {
	overflow: hidden;
}
#main_visual .visual {
	opacity: 0;
	transform: scale(1.1);
	transition: 1.8s all 0.2s ease;
}
#main_visual.ac .visual {
	opacity: 1;
	transform: scale(1);
}
#main_visual h1 {
	opacity: 0;
	transition: 1.5s all 1.6s ease;
}
#main_visual h2 {
	clip-path: inset(0 100% 0 0);
}
#main_visual.ac h1 {
	opacity: 1;
}
#main_visual.ac h2 {
	animation: clipReveal 1s ease-out 2.6s forwards;
}
@media only screen and (max-width: 768px)  {
	#main_visual h1 {
		transition: 1.5s all 2.8s ease;
	}
	#main_visual.ac h2 {
		animation: clipReveal 1s ease-out 1.6s forwards;
	}	
}

#main_visual.ac h1,#main_visual.ac h2 {
	opacity: 1;
}

.box {
	opacity: 0;
	transform: translate(0,20px);
	transition: 0.8s all 0s ease;
}
.box.ac {
	opacity: 1;
	transform: translate(0);
}
.box .img img:nth-of-type(2) {
	opacity: 0;
	transform: scale(1.05);
	transition: 1.2s all 0.6s ease;
	
}
.box:nth-of-type(even) .img img:nth-of-type(2) {
	transition-delay: 0.8s;
}
.box:nth-of-type(3n) .img img:nth-of-type(2) {
	transition-delay: 1s;
}
.box.ac .img img:nth-of-type(2) {
	opacity: 1;
	transform: scale(1);
}
.anim {
	opacity: 0;
	transition: 1.6s all 0.1s ease;
}
.anim.ac {
	opacity: 1;
}
@keyframes clipReveal {
  to {
    clip-path: inset(0 0 0 0);
  }
}