  /* フォント読み込み */
  @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap');

  /* ページの基本設定 */
  html,
  body {
      margin: 0;
      padding: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      /* 動画読み込み前の背景色 */
  }

  /* --- 採用ページ専用：ロゴ画像の差し替え --- */

  /* 1. 元々のロゴ画像を消す */
  /*     #header_logo img {
      display: none !important;
    } */

  .rich_font_logo {
      display: none !important;
  }

  /* 2. 新しいロゴ画像を背景として表示する */
  #header_logo a {
      display: block;
      width: 450px;
      /* ★新しいロゴの表示幅 */
      height: 60px;
      /* ★新しいロゴの表示高さ */

      /* ★ここに新しい画像のURLを入れてください */
      background-image: url('http://localhost/wordpress_oshironew/wp-content/uploads/2026/02/oshirogumi_logoRecruit.png');

      background-repeat: no-repeat;
      background-size: contain;
      /* 枠内に収める */
      background-position: center;
  }

  /* --- 1. ローディング画面の設定 --- */
  .loading-screen {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: #ffffff;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      z-index: 9999;
      /* 最前面に表示 */
      overflow: hidden;

      /* 8秒後に背景ごとフェードアウトして操作不能にする */
      animation: bgFadeOut 8s forwards;
      pointer-events: none;
  }

  /* --- 2. ファーストビュー（動画）の設定 --- */
  .fv-area {
      position: relative;
      width: 100%;
      height: 100vh;
      overflow: hidden;
      background-color: #fff;
      /* opacity: 0; */
      /* 最初は隠しておく */
      /* transition: opacity 1.5s ease; */
      /* ふわっと表示させる */
  }

  /* 追記：JSによってこのクラスが付与されたら、動画を表示する */
  /* .fv-area.is-active {
      opacity: 1;
  } */

  .fv-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      /* 画面いっぱいにトリミング */
      position: absolute;
      top: 0;
      left: 0;
  }

  /* --- 以下、いただいたアニメーションCSS --- */
  .logo-svg {
      width: 450px;
      height: auto;
      opacity: 1;
      z-index: 10;
      animation: zoomAndMoveFade 8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
      /* ★追加：ブラウザのGPUを強制的に使わせてカクつきを無くす魔法 */
      transform: translateZ(0);
      will-change: transform, opacity, filter;
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
  }

  .recruit-text {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      color: #0063A7;
      font-size: 8.5vw;
      width: 95%;
      text-align: center;
      line-height: 1;
      margin-top: 40px;
      opacity: 0.5;
      white-space: nowrap;
      animation: textAppear 8s ease-in-out forwards;
  }

  .loading-counter {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      color: #0063A7;
      font-size: 24px;
      margin-top: 15px;
      opacity: 0.5;
      animation: counterFade 8s ease-in-out forwards;
  }

  /* アニメーション定義 */
  @keyframes zoomAndMoveFade {
      0% {
          opacity: 0;
          filter: blur(20px);
          transform: scale(4);
      }

      10% {
          opacity: 1;
      }

      20% {
          filter: blur(0px);
      }

      70% {
          transform: scale(1) translate(0, 0);
          opacity: 1;
      }

      75% {
          transform: scale(1) translate(0, 0);
          opacity: 1;
      }

      100% {
          transform: translate(-42vw, -30vh) scale(0.35);
          opacity: 0;
      }
  }

  @keyframes textAppear {
      0% {
          opacity: 0;
          transform: translateY(30px);
      }

      15% {
          opacity: 0.5;
          transform: translateY(0);
      }

      75% {
          opacity: 0.5;
          transform: translateY(0);
      }

      100% {
          opacity: 0;
          transform: translateY(10px);
      }
  }

  @keyframes counterFade {
      0% {
          opacity: 0;
      }

      15% {
          opacity: 0.5;
      }

      75% {
          opacity: 0.5;
      }

      100% {
          opacity: 0;
          transform: translateY(10px);
      }
  }

  @keyframes bgFadeOut {
      0% {
          opacity: 1;
      }

      85% {
          opacity: 1;
      }

      100% {
          opacity: 0;
      }
  }

  /* スマホ対応 */
  @media screen and (max-width: 480px) {
      .logo-svg {
          width: 85vw;
      }

      .recruit-text {
          font-size: 11.5vw;
          margin-top: 20px;
      }

      .loading-counter {
          font-size: 16px;
          margin-top: 10px;
      }

      @keyframes zoomAndMoveFade {
          0% {
              opacity: 0;
              filter: blur(10px);
              transform: scale(3);
          }

          10% {
              opacity: 1;
          }

          20% {
              filter: blur(0px);
          }

          75% {
              transform: scale(1) translate(0, 0);
              opacity: 1;
          }

          100% {
              transform: translate(-30vw, -35vh) scale(0.3);
              opacity: 0;
          }
      }
  }

  /* TCDテーマ特有のヘッダーなどが干渉する場合の調整 */
  #header {
      z-index: 100 !important;
  }