@charset "UTF-8";


/* ===== スクロール表示ヘッダー ===== */
.js-scroll-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;

  opacity: 0;
  transform: translateY(-100%);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

/* 表示状態 */
.js-scroll-header.is-show {
  opacity: 1;
  transform: translateY(0);
}




/* ローディング全画面 */
.loading-screen {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s ease;
}

/* 非表示状態 */
.loading-screen.is-hide {
  opacity: 0;
  pointer-events: none;
}

/* ロゴ */
/* ロゴのふわっと表示アニメーション */
.loading-logo {
  opacity: 0;
  width:100px;height:auto;
  transform: translateY(20px) scale(0.98);
  animation: logoFadeIn 1.2s ease forwards;
}

/* ロゴ表示アニメーション */
@keyframes logoFadeIn {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}


a.btn:hover {
  transform: scale(1.1);
  transition: .3s;
  
}
.service a:hover{
  transform: scale(1.02);
  transition: .3s;

}

/* kv */
.kv{
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.kv .main-copy{
  font-size: 30px;
  font-weight: bold;
  text-align: left;
  line-height: 1.3;
  letter-spacing: .1em;
}
.kv .main-copy span.red{color:#e60011;}

.kv .sub-copy{
  font-size: 20px;
  text-align: left;
}

/* video */
.video{
  width: 100%;
  height: 100vh;
  background: url(../img/kv-alternative.jpg) no-repeat center/cover;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: -1;
}

.video::after{
  content: '';
  width: 100%;
  height: 100%;
  background: linear-gradient(150deg, #fff 0%, #fff 65%, #e60011 65%, #e60011 100%);;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  opacity: .6;
}

.video video{
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}


.catch-item {
  display: inline-block;
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}

.catch-item.is-show {
  opacity: 1;
  transform: translateY(0);
}

.a-img {
  cursor: pointer;
  max-width: 500px;
  overflow: hidden;
  width: 100%;
}
.a-img img {
  height: auto;
  transition: transform .6s ease; /* ゆっくり変化させる */
}
.a-img:hover img {
  transform: scale(1.1); /* 拡大 */
}

@media screen and (min-width: 768px) {
  /* kv */
  .kv{
    justify-content: unset;
    margin-left:10vw;
  }

  .kv .main-copy{
    font-size: 4vw;
  }

  .kv .sub-copy{
    font-size: 24px;
  }

  /* video */
  .video{
    min-width: 960px;
  }
}

/* ===== スクロール表示（共通） ===== */
.js-scroll-show {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* 表示された状態 */
.js-scroll-show.is-show {
  opacity: 1;
  transform: translateY(0);
}







.container_01 {
position:absolute;
right:10vh;
bottom:10vh;
  margin: 0;
  padding: 0;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.container_01 a:hover {
  opacity: 0.7;
}

.scroll-down_01 {
  position: relative;
  width: 200px;
  height: 200px;
  color: #fff;
  text-decoration: none;
}

.circle-text_01 {
  position: absolute;
  width: 100%;
  height: 100%;
  animation: rotate 20s linear infinite;
}

.circle-text_01 span {
  position: absolute;
  left: 50%;
  font-size: 16px;
  transform-origin: 0 100px;
}

.arrow_01 {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 50px;
  transform: translate(-50%, -50%);
  animation: scroll_01 3s infinite;
}

.arrow_01::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  width: 1px;
  background-color: #fff;
  transform: translateX(-50%);
}
.arrow_01::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid #fff;
  transform: translateX(-50%) rotate(-45deg);
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes scroll_01 {
  0% {
    transform: translate(-50%, -50%) translateY(-10px);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) translateY(10px);
    opacity: 0;
  }
}
