/* プロジェクト紹介
=========================================================================
=========================================================================*/
/* Page title
-----------------------------------------------------------*/
article {
  margin-top: 0;
}

/* スクロール量を作るためのラッパー（3画面分） */
.title-wrapper {
  position: relative;
  height: 300vh;
}

/* 1画面分表示され続けるエリア */
.title {
  position: relative;
  width: 100vw;
  height: 100vh;
  text-align: center;
  overflow: hidden;
}

/* 背景3枚を重ねるコンテナ */
.title .bg {
  position: absolute;
  inset: 0;
}

/* オーバーレイ（今のままでOKならそのまま） */
.title .bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.5);
  z-index: 3;
}

/* 背景画像3枚を同じ位置に重ねる */
.title .bg img {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* 最初に見えているのは1枚目 */
.title .bg img:nth-child(1) {
  z-index: 1;
}

/* 2枚目・3枚目は下からスライドイン用に、最初は画面の下に待機 */
.title .bg img:nth-child(2),
.title .bg img:nth-child(3) {
  z-index: 2;
  /* 後で JS 側でも制御するので軽く */
}

/* タイトル画像（上から220/880の位置、左右中央・レスポンシブ） */
.title h1 {
  position: absolute;
  /* もともと 220 / 880 ≒ 0.25なので 25vh でほぼ同じバランス */
  top: calc(273 / 880 * 100%);
  left: 0;
  right: 0;
  margin: 0 auto;
  max-width: 510px;
  z-index: 4;
}

.title .scroll {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  margin: 0 auto;
  padding-bottom: 72px;
  max-width: 72px;
  z-index: 4;
}

.title .scroll:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1px;
  height: 55px;
  background-color: #000;
  transform: translateX(-50%) scaleY(0);
  transform-origin: top;
  animation: scrollLine 1s ease-in-out infinite;
}

@keyframes scrollLine {

  /* 0%：線なし（上から縮んでる） */
  0% {
    transform: translateX(-50%) scaleY(0);
    transform-origin: top;
  }

  /* 40%：上から下へ、長さ55pxまで伸びきる */
  40% {
    transform: translateX(-50%) scaleY(1);
    transform-origin: top;
  }

  /* 60%：まだ伸びきった状態（ここで起点を bottom に切り替え） */
  60% {
    transform: translateX(-50%) scaleY(1);
    transform-origin: bottom;
  }

  /* 100%：下を起点にシュッと縮んで消える */
  100% {
    transform: translateX(-50%) scaleY(0);
    transform-origin: bottom;
  }
}

/* List
-----------------------------------------------------------*/
.list {
  padding: 95px 0 110px;
  background-color: #FFF;
}

.list .inner {
  margin: 0 auto;
  max-width: 1180px;
}

@media screen and (max-width:1210px) {
  .list .inner {
    padding: 0 15px;
  }
}

.list ul {
  display: flex;
  flex-wrap: wrap;
  gap: 32px 0;
  width: 100%;
}

.list ul li .layout {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}

.list ul li .layout::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: calc(690 / 1180 * 100%);
  height: 100%;
  background-color: #F4F4F3;
}

/* 写真 */
.list ul li .layout .photo {
  position: relative;
  width: calc(490 / 1180 * 100%);
  z-index: 1;
}

.list ul li .layout .photo .photo_title {
  margin: 0 0 10px calc(20 / 490 * 100%);
  width: calc(167 / 490 * 100%);
}

.list ul li .layout .photo picture img {
  width: calc(551 / 490 * 100%);
}

/* テキスト */
.list ul li .layout .text {
  position: relative;
  padding: 77px 56px 47px 37px;
  width: calc(690 / 1180 * 100%);
  z-index: 1;
}

.list ul li .layout .text h2 {
  margin-bottom: 38px;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.8em;
}

@media screen and (max-width:1210px) {
  .list ul li .layout .text h2 {
    font-size: calc(32 / 1440 * 100vw);
  }
}

.list ul li .layout .text h2 span {
  display: inline-block;
  padding: 0 0.5em;
  background-color: #FFF;
}

.list ul li .layout .text h2 span:first-child {
  margin-bottom: 10px;
  font-size: 22px;
  line-height: 2em;
}

.list ul li .layout .text h3 {
  padding-left: 81px;
  margin-bottom: 0.75em;
  font-weight: 600;
  font-size: 14px;
}

.list ul li .layout .text p {
  padding-left: 81px;
  margin-bottom: 0.75em;
  font-size: 15px;
}

.list ul li .layout .text a.button_more {
  position: relative;
  overflow: hidden;
  display: block;
  margin-left: auto;
  width: 149px;
  height: 32px;
  font-weight: 600;
  font-size: 13px;
  line-height: 32px;
  text-align: center;
  background-color: #FFF;
  border-radius: 16px;
  transition: 0.3s;
}

@media(hover: hover) {
  .list ul li .layout .text a.button_more:hover {
    color: #FFF;
  }
}

.list ul li .layout .text a.button_more span {
  position: relative;
  display: block;
  background: url(../images/job/projects/index_button_more_arrow.svg) no-repeat;
  background-position: right 24px center;
  background-size: 6px auto;
  z-index: 2;
  transition: 0.3s;
}

@media(hover: hover) {
  .list ul li .layout .text a.button_more:hover span {
    background: url(../images/job/projects/index_button_more_arrow_on.svg) no-repeat;
    background-position: right 14px center;
    background-size: 6px auto;
  }
}

.list ul li .layout .text a.button_more::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: #008CD6;
  transform: scale(0, 1);
  transform-origin: left;
  z-index: 1;
  transition: 0.3s;
}

@media(hover: hover) {
  .list ul li .layout .text a.button_more:hover::after {
    transform: scale(1, 1);
  }
}


/*  スマホ（767px以下）
=========================================================================
=========================================================================*/
@media screen and (max-width:767px) {
  /* Page title
  -----------------------------------------------------------*/
  .title h1 {
    top: calc(280 / 660 * 100%);
    max-width: auto;
    width: calc(325 / 390 * 100%);
  }

  /* List
  -----------------------------------------------------------*/
  .list {
    padding: 40px 0 60px;
  }

  .list .inner {
    padding: 0;
  }

  .list ul {
    gap: 58px 0;
  }

  .list ul li .layout {
    gap: 23px 0;
  }

  .list ul li .layout::before {
    display: none;
  }

  /* 写真 */
  .list ul li .layout .photo {
    padding: 0 19px;
    width: 100%;
    z-index: 1;
  }

  .list ul li .layout .photo .photo_title {
    margin: 0 0 10px 0;
    width: calc(106 / 390 * 100%);
  }

  .list ul li .layout .photo picture img {
    width: 100%;
  }

  /* テキスト */
  .list ul li .layout .text {
    padding: 32px 15px;
    width: 100%;
    background-color: #F4F4F3;
  }

  .list ul li .layout .text h2 {
    font-size: 22px;
  }

  .list ul li .layout .text h2 span:first-child {
    font-size: 14px;
  }

  .list ul li .layout .text h3 {
    padding-left: 0;
  }

  .list ul li .layout .text p {
    padding-left: 0;
  }

}

/*  スマホ（480px以下）
=========================================================================
=========================================================================*/
@media screen and (max-width:480px) {
  /* List
  -----------------------------------------------------------*/
  /* テキスト */
  .list ul li .layout .text h2 {
    font-size: calc(19 / 390 * 100vw);
  }

}
