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

/*　ーー　ローディング画面　ーー　*/
.loading {
    background: #aab2da;
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translate(-50%);
    z-index: 999999;
    transition: opacity 1s ease;
}
.falling {
    position: absolute;
    top: -50px;
    left: 50%;
    font-size: 50px;
    animation: fall 3s infinite linear;
}
@keyframes fall {
  0% {
    transform: translateY(-100px) rotate(0);
  }
  100% {
    transform: translateY(100vh) rotate(360deg)
      ;
  }
}
 #container {
    display: none; /* 初期状態では非表示 */
    opacity: 0; /* フェードイン用 */
    transition: opacity 1s ease; /* フェードイン時のトランジション */
    width: 100%;
    height: auto;
}

/*　ーー　header　ーー　*/
header {
	top: -150px;
	opacity: 0;
	transition: all 0.5s ease-out;
}
header.header_active {
	top: 0;
	opacity: 1;
	transition: all 0.5s ease-out;
}
header .humbergar_menu.active {
	display: block;
	opacity: 1;
}


/*　ーー　ハンバーガーメニュー　ーー　*/
.openbtn{
	position: relative;
	background: #ffffff;
	cursor: pointer;
    width: 48px;
    height: 48px;
	border-radius: 50%;
}
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 50%;
	transform: translateX(-50%);
    height: 2px;
    border-radius: 5px;
	background: #241d1b;
  	width: 45%;
  }
.openbtn span:nth-of-type(1) {
	top:17px;	
}
.openbtn span:nth-of-type(2) {
	top:23px;
}
.openbtn span:nth-of-type(3) {
	top:29px;
}
.openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 50%;
    transform: translate(-50%,6px) rotate(-45deg);
    width: 30%;
}
.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}
.openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 50%;
    transform:  translate(-50%,-6px) rotate(45deg);
    width: 30%;
}
/*　ーー　/ハンバーガーメニュー　ーー　*/


/*　ーー　スライダー01　ーー　*/
.slider_01 {
    width:94%;
    margin:0 auto;
}
.slider_01 img {
    width:30vw;
    height:auto;
}
.slider_01 .slick-slide {
	transform: scale(0.8);
	transition: all .5s;
	opacity: 0.5;
}
.slider_01 .slick-slide.slick-center{
	transform: scale(1);
	opacity: 1;
}
.slick-prev {
    left: -1.5%;
}
.slick-next {
    right: -1.5%;
}
.slick-dots {
    text-align:center;
	margin:20px 0 0 0;
}
.slick-dots li {
    display:inline-block;
	margin:0 5px;
}
.slick-dots button {
    color: transparent;
    outline: none;
    width:8px;
    height:8px;
    display:block;
    border-radius:50%;
    background:#ccc;
}
.slick-dots .slick-active button{
    background:#333;
}
.slider_sample {
  opacity: 0;
  transition: opacity .3s linear;
}
.slider_sample.slick-initialized{
  opacity: 1;
}
/*　ーー　/スライダー01　ーー　*/

/*　ーー　スライダー02　ーー　*/
.slider_03 {
    margin: 5% auto;
}


/*　ーー　fadeUp　ーー　*/
.fuwa_scroll_fadeUp {
	opacity: 0;
	transform: translate(0,30);
	transition: translate all 0.5s;
}
.fuwa_scroll_fadeUp.active {
	opacity: 1;
	transform: translate(0,0);
	animation-name: fadeUpAnime;
	animation-duration: 0.8s;
	animation-fill-mode: forwards;
}
@keyframes fadeUpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}
/*　ーー　/fadeUp　ーー　*/

/*　ーー　bound　ーー　*/
.bound {
  animation: bound 3s infinite;
}
@keyframes bound {
  0% { transform:translateY(0) }
  5% { transform:translateY(0) }
  10% { transform:translateY(0) }
  20% { transform:translateY(-25px) }
  25% { transform:translateY(0) }
  30% { transform:translateY(-15px) }
  50% { transform:translateY(0) }
  100% { transform:translateY(0) }
}
/*　ーー　/bound　ーー　*/
@media screen and (max-width: 1200px) {
    .slider_02 img {
        width: clamp(74px,15.38vw,180px);
    }
}
@media screen and (max-width: 769px) {
	.slider_01 img {
		width: 50vw;
	}
}
@media screen and (max-width: 480px) {
    .slider_02 .slick-list {
        padding: 9% 0 3% !important;
    }
    .slider_02 img {
        width: clamp(74px,24.66vw,120px);
    }
}
.fade-img {
  animation: fadeinout 2s infinite; /* 4秒で1サイクル、無限ループ */
}
@keyframes fadeinout {
  0% { opacity: 0; }    /* 透明 */
  50% { opacity: 1; }   /* 完全に表示 */
  100% { opacity: 0; }  /* また透明 */
}

.drop-img {
    opacity: 0; /* 最初は非表示 */
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.drop-img.active {
    animation: drop 0.5s ease-out;
    opacity: 1;
}
@keyframes drop {
  0% { transform: translateY(-100px); opacity: 0; }
  50% { opacity: 1; }
  80% { transform: translateY(10px); } /* 大きくバウンド */
  90% { transform: translateY(-2px); } /* ちょっと上に跳ね返る */
  93% { transform: translateY(0px); } /* ちょっと上に跳ね返る */
  96% { transform: translateY(-2px); } /* ちょっと上に跳ね返る */
  100% { transform: translateY(0); } /* 着地 */
}

.fadein-target {
    opacity: 0; /* 最初は非表示 */
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.fadein-target.active {
    opacity: 1;
    animation: fadein 0.4s ease-in-out;
}
@keyframes fadein {
  0% { opacity: 0; transform: translateY(10px); }
  80% { opacity: 0; transform: translateY(0); }
  90% { opacity: 0.5; transform: translateY(10px); }
  100% { opacity: 1; transform: translateY(0); }
}






