@charset "UTF-8";


/* 背景色左から右アニメボタン
--------------------------------------------- */
.btn_shift{
	position: relative;
	overflow: hidden;
	text-decoration: none;
	display: inline-block;
	outline: none;
	transition: ease .2s;
}
.btn_shift a {
	position:relative;
  z-index: 3;
}
.btn_shift:hover a{
	border-color: #fff;
}
.btn_shift::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.btn_shift::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  background:#fff;
  width: 100%;
  height: 100%;
  transition: transform .3s ease;
  transform: scale(0, 1);
  transform-origin: right top;
}
.btn_shift:hover:after{
  transform-origin:left top;
  transform:scale(1, 1);
}
/* 矢印アイコン */
.btn_shift .ico_ar {
  border: 1px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: ease .2s;
  margin-left: auto;
}
.btn_shift .ico_ar::after {
  content: '';
  background-image: url(../img/cmn/ico_cmn_arrow_white.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
  display: block;
  transition: ease .2s;
}
/* 色　オレンジ */
.btn_orange {
	border: 1px solid #ea7603;
}
.btn_orange:hover a{
  color: #ea7603;
}
.btn_orange::before{
  background-color: #ea7603;
}
.btn_orange:hover .ico_ar {
  border: 1px solid #ea7603;
}
.btn_orange:hover .ico_ar::after {
  background-image: url(../img/cmn/ico_cmn_arrow_orange.svg);
}

/* アンダーライン　左から右アニメ
--------------------------------------------- */
.deco_under::after,
.list_footer a::after,
.nav_s_footer a::after
 {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  bottom: -3px;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform 0.3s;
  /*background:#を個別で指定してください*/
}
.deco_under:hover::after,
.list_footer a:hover::after,
.nav_s_footer a:hover::after
 {
  transform: scale(1, 1);
  transform-origin: left top;
}


/* 下からフェードイン 汎用
--------------------------------------------- */
.box {
	transition: transform .2s ease;
	opacity: 0;
	transform: translateY(20px);
}
.boxin {
	transform:translateX(0px);
	opacity: 1;
	animation-name:fadeIn;
  animation-duration:500ms;
  animation-timing-function:ease-in-out;
  animation-fill-mode:forwards;
}
@keyframes fadeIn {
    0% {
        opacity:0;
        transform:translateY(10px);
    }
    100% {
       opacity:1;
       transform:translateY(0px);
    }
}


/* MORE ボタン 
--------------------------------------------- */
[class*="btn_more"] {
  display: flex;
	align-items: center;
	justify-content: space-between;
	letter-spacing: 0.1em;
	display: inline-flex;
	z-index: 2;
	position: relative;
	overflow: inherit;
  font-family:"Noto Sans JP",  "Yu Gothic", "YuGothic", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial",  "Meiryo";
  font-optical-sizing: auto;
  font-weight: lighter;
}
.btn_more .ico_arrow {
	background-color: #33bedb;
	border-radius: 50%;
	width: 1.2993625rem;
  width: clamp(1.2993625rem, -0.000012500000000637002rem + 1.4850000000000008vw, 1.5778rem);
  height: 1.2993625rem;;
  height: clamp(1.2993625rem, -0.000012500000000637002rem + 1.4850000000000008vw, 1.5778rem);
	display: block;
	margin-left: 10px;
	transition: 0.25s;
	overflow: inherit;
}
[class*="btn_more"] .ico_arrow::after {
	content: '';
	background-position: center center;
	background-repeat: no-repeat;
	background-image: url(../img/cmn/ico_cmn_arrow_white.svg);
	background-size: 0.47253125rem;
  background-size: clamp(0.47253125rem, -0.00416875000000011rem + 0.5448000000000002vw, 0.57468125rem);
	height: 100%;
	display: block;
}
[class*="btn_more"]:hover .ico_arrow::after,.li_prdct:hover .ico_arrow::after{
	animation: 0.25s arrow 0s ease-in-out;
}
[class*="btn_more"]:hover .ico_arrow,.li_prdct:hover .ico_arrow{
	transform: scale(1.2);
	transition: 0.25s;
	transform-origin: center center;
}
@keyframes arrow {
  0% {transform: translateX(0); opacity: 1;}
  50% {transform: translateX(100%); opacity: 0;}
  50.1% {transform: translateX(-100%); opacity: 0;}
  100% {transform: translateX(0); opacity: 1;}
}
.btn_more:hover{
	transition: 0.25s;
	transform-origin: center;
  color: #33bedb;
}


/* ボタン 矢印右上
--------------------------------------------- */

.btn_blank {
  display: flex;
	align-items: center;
	justify-content: space-between;
	letter-spacing: 0.1em;
	display: inline-flex;
	z-index: 2;
	position: relative;
	overflow: inherit;
}
.btn_blank .ico_arrow {
  background-color: #33bedb;
	border-radius: 50%;
	width: 34px;
  height: 34px;
	display: block;
	margin-left: 10px;
	transition: 0.25s;
	overflow: inherit;
  transition: 0.25s;
}
.btn_blank::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: calc(100% - 38px);
  background-color: #3e3a39;
}
.btn_blank:hover::after {
  opacity: 0;
}
.btn_blank .ico_arrow::after {
	content: '';
	background-position: center center;
	background-repeat: no-repeat;
	background-image: url(../img/cmn/ico_cmn_arrow_white.svg);
	background-size: auto;
	height: 100%;
	display: block;
  transform: rotate(-45deg);
}
.btn_blank:hover .ico_arrow {
  transform: scale(1.1);
} 


/* ボタン 
--------------------------------------------- */

.btn_ollwidth {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	letter-spacing: 0.1em;
	padding: 8.1% 5%;
	background-color: #000;
}
.btn_ollwidth:link, .btn_ollwidth:hover, .btn_ollwidth:visited{
	color: #fff;
}
.ico_all_arrow {
	border-radius: 50%;
	margin-left: 50px;
	width: 76px;
	height: 76px;
	z-index: 5;
	display: block;
	background-color: #fff;
	transition: 0.25s;
}
.ico_all_arrow::after {
	content: '';
	background-image: url(../img/cmn/ico_cmn_arrow.svg);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 100% auto;
	width: 15px;
	height: 100%;
	margin: 0 auto;
	display: block;
}
.btn_ollwidth:hover .ico_all_arrow::after {
	animation: 0.25s arrow 0s ease-in-out;
}
.btn_ollwidth:hover .ico_all_arrow {
	transform: scale(1.2);
	transition: 0.25s;
	transform-origin: center center;
}
.nyu_in .bg_anime_btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
  transform-origin: left center;
  transition: transform 0.25s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  opacity 0.2s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  -webkit-transform 0.25s cubic-bezier(0.77, 0, 0.175, 1) 0s;
}
.nyu_in:hover .bg_anime_btn::before {
	transform: translate3d(0, 0, 0) scale(1, 1);
	transition: 1s;
}
.nyu_in .bg_anime_btn::after {
  display: block;
  content: '';
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  background: #1a1a1a;
  transform-origin: left center;
  transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  opacity 1.4s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  -webkit-transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0s;
}
.nyu_in:hover .bg_anime_btn::after {
	transform: translate3d(0, 0, 0) scale(0, 1);
	transform-origin: right center;
}

@media screen and (max-width:400px){
	.ico_all_arrow {
		width: 56px;
		height: 56px
	}
}

/* ぽよっと出る
--------------------------------------------- */
.poyo {
  transform: scale(0);
  opacity: 0;
  transform-origin: center;
  transition: 1s;
}
.poyo_in{
  transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s,
  -webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s;
  transform: scale(1);
  opacity: 1;
}
.list_control li::after {
  transform: scale(0);
  opacity: 0;
  transform-origin: center;
  transition: 1s;
}
.list_in li::after {
  transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s,
  -webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s;
  transform: scale(1);
  opacity: 1;
}





/* アニメーション １文字ずつタイトル */
.ttl_anime{overflow: hidden; }
.ttl_anime i {
    font-style: normal;
    line-height: normal;
    display: inline-block;
    transform: translateY(2em);
    will-change: transform, opacity;
}
.ttl_in i{animation: textanimation 1s forwards;}
.ttl_in i:nth-child(2) {animation-delay: 0.1s}
.ttl_in i:nth-child(3) {animation-delay: 0.2s}
.ttl_in i:nth-child(4) {animation-delay: 0.3s}
.ttl_in i:nth-child(5) {animation-delay: 0.4s}
.ttl_in i:nth-child(6) {animation-delay: 0.5s}
.ttl_in i:nth-child(7) {animation-delay: 0.6s}
.ttl_in i:nth-child(8) {animation-delay: 0.7s}
.ttl_in i:nth-child(9) {animation-delay: 0.8s}
.ttl_in i:nth-child(10) {animation-delay: 0.9s}
.ttl_in i:nth-child(11) {animation-delay: 1.0s}
.ttl_in i:nth-child(12) {animation-delay: 1.1s}
@keyframes textanimation {
  0% {transform: translateY(2em);}
  100% {transform: translateY(0);}
}

/* アニメーション プロダクト */
.nyu {position: relative;}
.nyu_in::before {transform: translate3d(0, 0, 0) scale(1, 1);}
.nyu_l.nyu_in::before,.nyu_r.nyu_in::before {transform: translate3d(0, 0, 0) scale(0.41, 1);}
.nyu::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  pointer-events: none;
  display: block;
  width: 100%;
  height: 100%;
  background: #1a1a1a;
  will-change: transform;
  transform-origin: right center;
  transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0.3s,
  opacity 0.2s cubic-bezier(0.77, 0, 0.175, 1) 1.4s,
  -webkit-transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0.3s;
}
.nyu_in::after {transform: translate3d(0, 0, 0) scale(0, 1);}
.nyu::after {
  display: block;
  content: '';
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  background: #333;
  will-change: transform;
  transform-origin: right center;
  transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  opacity 1.4s cubic-bezier(0.77, 0, 0.175, 1) 0s,
  -webkit-transform 1.2s cubic-bezier(0.77, 0, 0.175, 1) 0s;
}
.nyu_in .nyu_img {
  transform-origin: center center;
  transform: translate3d(0, 0, 0) scale(0,0);
  animation: 1.2s mg_prdct 0.3s forwards;
}
@keyframes mg_prdct {
  0% {transform: translate3d(0, 0, 0) scale(1.8, 1.8);opacity: 0;}
  30% {transform: translate3d(0, 0, 0) scale(1.8, 1.8);opacity: 0;}
  100% {transform: translate3d(0, 0, 0) scale(1, 1);opacity: 1;}
}
.nyu_txt {z-index: 5; opacity: 0;}
.nyu_in .nyu_txt {animation: 0.2s tx_prdct 1.3s forwards;}
@keyframes tx_prdct {
  0% {transform: scale(1.2, 1.2);opacity: 0;}
  100% {transform: scale(1, 1);opacity: 1;}
}
.nyu_r:nth-child(2):before,.nyu_r:nth-child(2)::after {
  right: 0;
  left: auto;
  transform-origin: left center;
}
@media screen and (max-width:800px) {
.nyu_l.nyu_in::before,.nyu_r.nyu_in::before {transform: translate3d(0, 0, 0) scale(0.5, 1);}
}




/* 左から背景色→画像表示アニメ 汎用
--------------------------------------------- */
.change {
  position: relative;
  overflow: hidden;
}
.change img{
  opacity: 0;
}
.change_in::before {
  content: '';
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  background-color: #2a2e34;
  animation-name:PageAnime;
  animation-duration:2s;
  animation-timing-function:ease-in-out;
  animation-fill-mode:forwards;
}
.change_in.change img{
  opacity: 0;
  animation-name: PageAnime2;
  animation-duration: 2s;
  animation-timing-function:ease-in-out;
  animation-fill-mode:forwards;
  width:100%;
  height:100%;
}
@keyframes PageAnime{
  0% {
    transform-origin:left;
    transform:scaleX(0);
    opacity: 1;
  }
  30% {
    transform-origin:left;
    transform:scaleX(1);
    opacity: 1;
  }
  100% {
    transform-origin:left;
    transform:scaleX(1);
    opacity: 0;
  }
}
@keyframes PageAnime2{
  0% {opacity: 0; transform: scale(1.05,1.05);filter: blur(8px);}
  30% {opacity: 0; transform: scale(1.05,1.05);filter: blur(8px);}
  100% {opacity: 1; transform: scale(1,1);filter: blur(0px);}
}
@media screen and (max-width:1800px){
  .change_in.change img{
    width:100%;
    height:100%;
  }
  .pic_kodawari.change_in.change img{
    width: fit-content;
    height: fit-content;
  }
}
@media screen and (max-width:900px){
  .change img{
    opacity: 1;
  }
.change_in::before {
    transform: scaleX(1);
    animation: none;
    display: none;
  }
.change_in.change img{
    opacity: 1;
    animation: none;
  }
}