@charset "utf-8";
/* CSS Document */

/*　ーー　ローディング画面　ーー　*/
.loading {
    background: #4f9ed8;
    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;
}

/*　ーー　TOP　ーー　*/
/* 初期状態：01だけ見せて、02-04は非表示 */
.main_image .main_animation .main_animation_02,
.main_image .main_animation .main_animation_03,
.main_image .main_animation .main_animation_04 {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 600ms ease, transform 600ms ease;
}

/* 02は右から入ってくる感じ */
.main_image .main_animation .main_animation_02 {
  transform: translateX(30px);
}

/* 表示トリガー用クラス */
.main_image .main_animation .is-in {
  opacity: 1;
  transform: translate(0, 0);
}

/* ④ 吹き出しの拡大縮小ループ（フェード後に付与） */
@keyframes pulse-bounce {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.08); }
}

/* ループ用クラス（03専用） */
.main_image .main_animation .pulse {
  animation: pulse-bounce 1.6s ease-in-out infinite;
  transform-origin: 50% 50%;
}

/* ユーザーの省エネ設定に配慮（任意） */
@media (prefers-reduced-motion: reduce) {
  .main_image .main_animation .main_animation_02,
  .main_image .main_animation .main_animation_03,
  .main_image .main_animation .main_animation_04 {
    transition: none;
    transform: none;
  }
  .main_image .main_animation .pulse {
    animation: none;
  }
}
/*　ーー　/TOP　ーー　*/

/*　ーー　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;
}

/*　ーー　bg_main　ーー　*/

main {
    animation: move-bg 10s linear infinite;
}

@keyframes move-bg {
    from { background-position: 0 0; }
    to   { background-position: 0 -200px; } /* 縦方向に流れる */
}

/*　ーー　ハンバーガーメニュー　ーー　*/
.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%;
}
/*　ーー　/ハンバーガーメニュー　ーー　*/

/*　ーー　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);
    }
}
