@charset "UTF-8";

/* ==================================================
   Loading Screen
================================================== */
.p-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #776540;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 1.8s ease, visibility 0.8s ease;
  visibility: visible;
  background-image: url(/assets/img/loading_bg.jpg);
  background-size: 12%;
  opacity: 1;
}

.p-loader.is-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.p-loader--logo {
  width: 140px;
  height: auto;
  opacity: 0;
  transition: opacity 1.5s ease;
}

/* 初回訪問時（JSでクラス付与）のみロゴを表示 */
.p-loader.is-first-visit .p-loader--logo {
  opacity: 1;
}

@media (min-width: 769px) {
  .p-loader--logo {
    width: 180px;
  }
  .p-loader--logo svg {
    width: 100%;
    height: auto;
  }
  .p-loader--logo svg path {
    fill: #FFF;
  }
}

/* ==================================================
   Scroll Animations
================================================== */
[data-anim] {
  opacity: 0;
  transition-duration: 2s;
  transition-timing-function: ease-out;
  transition-property: opacity, transform;
}

/* スライドアップ：個別に秒数を設定可能 */
[data-anim="in-slide-up"] {
  transform: translateY(30px);
  transition-duration: 1.5s;
}

/* フェード：個別に秒数を設定可能 */
[data-anim="in-fade"] {
  transition-duration: 4s;
}

/* アニメーション実行時（JSで付与） */
[data-anim].is-animated {
  opacity: 1;
  transform: translateY(0);
}

/* モバイル表示時はディレイを無効化 */
@media (max-width: 768px) {
  [data-anim] {
    transition-delay: 0s !important;
  }
}
