@charset "UTF-8";

@keyframes DownAnime{
  from {
  	opacity: 0;
	transform: translateY(-170px);
  }
  to {
  	opacity: 1;
	transform: translateY(0);
  }
}
@keyframes pulse {
  0%,
  100% {
    transform: scale3d(1, 1, 1)
  }
  50% {
    transform: scale3d(1.1, 1.1, 1.1)
  }
}
.u--pulse {
  animation: pulse 2s cubic-bezier(.445, .05, .55, .95) infinite;
}
@keyframes bounce {
  0%,
  100%,
  20%,
  53%,
  80% {
    transform: translate3d(0, 0, 0)
  }
  40%,
  43% {
    transform: translate3d(0, -6vh, 0)
  }
  70% {
    transform: translate3d(0, -3vh, 0)
  }
  90% {
    transform: translate3d(0, -1vh, 0)
  }
}
.u--bounce {
  animation: bounce 2s cubic-bezier(.445, .05, .55, .95) infinite;
}
@keyframes shake {
  0%,
  100% {
    transform: translate3d(0, 0, 0)
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translate3d(-1vw, 0, 0)
  }
  20%,
  40%,
  60%,
  80% {
    transform: translate3d(1vw, 0, 0)
  }
}
.u--shake {
  animation: shake 2s cubic-bezier(.445, .05, .55, .95) infinite;
}
@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg)
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg)
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg)
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg)
  }
  100% {
    transform: rotate3d(0, 0, 1, 0deg)
  }
}
.u--swing {
  transform-origin: top center;
  animation: swing 2s cubic-bezier(.445, .05, .55, .95) infinite;
}
/* ふわふわ */
@keyframes float {
  0%,
  100% {
    transform: translatey(0)
  }

  45% {
    transform: translatey(-15px)
  }
}
@keyframes shadow {

  0%,
  100% {
    width: 30%
  }

  45% {
    width: 15%
  }
}
.section__float {
  transform: translatey(0);
  animation: float 1.8s ease-in-out infinite;
}
.section_shadow {
  display: block;
  width: 30%;
  height: 6px;
  margin: 9px auto 0;
  border-radius: 6px;
  background: rgba(0, 0, 0, .1);
  animation: shadow 1.8s ease-in-out infinite;
}
/* うにょうにょ */
.fluid {
  animation: fluidrotate 20s linear 0s infinite;
  /*アニメーションの設定*/
}
.fluid:nth-of-type(2),
.fluid:nth-of-type(5) {
  animation-delay: -5s;
}

.fluid:nth-of-type(3),
.fluid:nth-of-type(6) {
  animation-delay: -15s;
}
@keyframes fluidrotate {

  0%,
  100% {
    border-radius: 63% 37% 54% 46%/55% 48% 52% 45%;
  }

  14% {
    border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;
  }

  28% {
    border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;
  }

  42% {
    border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;
  }

  56% {
    border-radius: 61% 39% 67% 33%/70% 50% 50% 30%;
  }

  70% {
    border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;
  }

  84% {
    border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;
  }
}
/* 上から */
.fadeDown{
  animation-name:fadeDownAnime;
  animation-duration:1.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeDownAnime{
  from {
    opacity: 0;
    transform: translateY(-60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 右から */
.fadeRight{
  animation-name:fadeRightAnime;
  animation-duration:1.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeRightAnime{
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.fadeDownTrigger,.fadeRightTrigger{
    opacity: 0;
}
/*==================================================
　5-3-3 左から右に線が伸びる（下部）
/* .move_bottom-lineを基点にします */
.movelineTrigger {
  display: inline-block;
  position: relative;
}
/* ::afterの擬似要素を作ります。 */
.movelineTrigger::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20px;
  width: 0;
  /* hoverしていない時の横幅は0に指定 */
  height: 2px;
  /* 線の太さ */
  background-color: var(--main-color);
  /* 線色 */
  transition: 1s;
  /* アニメーション時間 */
}
.movelineTrigger:nth-child(2)::after {
  transition-delay: 1s;
}
.movelineTrigger:nth-child(3)::after {
  transition-delay: 2s;
}
.movelineTrigger:nth-child(4)::after {
  transition-delay: 3s;
}
/* 画面内時に線の横幅を100%にします */
.movelineTrigger.move_bottom-line::after {
  width: calc(100% - 20px);
}
/*==================================================
/*枠線が伸びて出現*/
.lineTrigger{
  position: relative; /* 枠線が書かれる基点*/
}
.lineTrigger.lineanime::after{
  animation-name:lineAnimeBase;
  animation-duration:1s;
  animation-fill-mode:forwards;
}
@keyframes lineAnimeBase{
  from {
    opacity:0;
  }
  to {
    opacity:1;
  }
}
/*上下線*/
.lineTrigger::after{
  position: absolute;
  content:"";
  width:0;
  height:1.5px;
  background:var(--text-purple-color);/* 枠線の色*/
}
/*下線*/
.lineTrigger::after {
  bottom:0;
  left:0;
}
.lineTrigger.lineanime::after {
  animation: lineAnime 1s linear 0.5s forwards;/*表示されて0秒後に下線が1秒かけて表示*/
}
@keyframes lineAnime {
  0% {width:0%;}
    100%{width:100%;}
}
.small-mainimages .lineTrigger::after {
  background: var(--text-dark-color);
}

/*== 線から塗に変化（下から上）*/
/*線の設定*/
.borderbottom li::before,
.borderbottom li::after {
  content: '';
  /*絶対配置で線の位置を決める*/
  position: absolute;
  width:1.5px;
  height: 0;
  /*線の形状*/
  background:var(--brighit-main-coror);
  /*アニメーションの設定*/
  transition: all .3s;
}
/*左線*/
.borderbottom li::before {
  left:0;
  bottom:0;
}
/*右線*/
.borderbottom li::after {
  right:0;
  bottom:0;
}
/*hoverをすると線が伸びる*/
.borderbottom:hover li::before,
.borderbottom:hover li::after {
  height: 100%;
}
/*背景の設定*/
.borderbottom::before{
  content: '';
  /*絶対配置で線の位置を決める*/
  position: absolute;
  left: 0;
  bottom:0;
  z-index: -1;
  /*背景の形状*/
  width: 100%;
  height: 0;
  background:var(--brighit-main-coror);
  /*アニメーションの設定*/
  transition: all 0.25s;
}
/*hoverをすると背景が伸びる*/
.borderbottom:hover::before{
  height: 100%;
  /*0.4秒遅れてアニメーション*/
  transition-delay: .3s;
}

/*========= SVG操作手書き風にするためのCSS ===============*/
/*マスクをするパスの設定*/
/* Loading アイコンの大きさ設定　*/
#logo-img svg{width: fit-content;}
#mask-line {
  stroke-dasharray: 770px;
  animation:h-written 6.5s linear ;
  stroke:#fff;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-miterlimit:10;
  fill:none;
  stroke-width:3;
}
.st0{fill:var(--orange-color);}
#text { mask:url(#mask-ani);}
@keyframes h-written {
  0% {
    stroke-dashoffset: 770px;
  }
  100% {
    stroke-dashoffset: 0px;
  }
}
/*========= SVGアニメCSS ===============*/
.svg-anm_3 {
  animation: starAnimeBase 3.5s ease-in infinite;
}
@keyframes starAnimeBase {
  0% {
    transform: rotateZ(0deg);
  }
  5% {
    transform: rotateZ(180deg);
  }
  25% {
    transform: rotateZ(210deg);
  }
  35% {
    transform: rotateZ(360deg);
  }
  100% {
    transform: rotateZ(380deg);
  }
}
.con1 .photo .frame1 {
  animation: wobbling_x 1.7s ease-in-out infinite alternate,
    wobbling_y 2.2s ease-in-out infinite alternate;
}
.con1 .photo .frame2 {
  transform: rotateZ(8deg);
  animation: wobbling_x_left 1.7s ease-in-out infinite alternate,
  wobbling_y 2.2s ease-in-out infinite alternate;
}
.svg-anm_3 .cls-1 {
  stroke-width: 3px;
}
.svg-anm_3 .cls-1,.svg-anm_3 .cls-2,.svg-anm_3 .cls-3 {
  stroke: var(--brighit-main-coror);
  stroke-linejoin: round;
}
.svg-anm_3 .cls-1,.svg-anm_3 .cls-3 {
  fill: none;
  stroke-linecap: round;
}
.svg-anm_3 .cls-2 {
  fill: var(--brighit-main-coror);
  stroke-width: 5px;
  stroke-linecap: round;
}
.svg-anm_3 .cls-3 {
  stroke-width: 2px;
}
@keyframes wobbling_x {
	0% {
		margin-right: 8px;
	}
	100% {
		margin-right: 0px;
	}
}
@keyframes wobbling_x_left {
	0% {
		margin-left: 8px;
	}
	100% {
		margin-left: 0px;
	}
}
@keyframes wobbling_y {
	0% {
		margin-top: 0px;
	}
	100% {
		margin-top: 8px;
	}
}

/*========= スライドアニメCSS ===============*/
.slick-slide {
  overflow: hidden; /* 画像がはみ出ないようにする */
}
.slick-img img {
  width: 100%;
}
@keyframes zoomUp {
  0% {
    transform: scale(1) translateX(0);
  }
  100% {
    transform: scale(1.15) translateX(5%); /* 拡大率 */
  }
}
.add-animation {
  animation: zoomUp 15s linear 0s normal both;
}