@charset "UTF-8";


.p-project {
  padding: 100px 0 120px;
  background: #FAFAFA;
}

.p-archive {
    margin: 80px auto 0;
    padding: 0 30px;
}

.p-archive .thumb {
  margin: 0 0 20px;
  max-height: 257px;
  height: 19.5vw;
  position: relative;
  overflow: hidden;
}

.p-archive .thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
}

/* ホバー用イラスト */
.p-archive .thumb-hover {
  position: absolute;
  inset: 0;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
}

.p-archive .thumb-main,
.p-archive .thumb-hover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}



.p-archive .post a {
  display: block;
  text-decoration: none;
  color: #000000;
  font-size: 1.4rem;
}

.p-archive .post .category {
  color: #757F88;
  padding: 5px 0 0;
  font-size: 1.2rem;
}

.p-all {
  margin: 0 0 120px;
}



@media screen and (min-width: 768px) {

  .p-archive .post:nth-child(n + 4) {
    margin-top: 80px;
  }

  .p-archive .post {
      max-width: 400px;
      width: 32.8%;
  }

  .p-archive {
      max-width: 1280px;
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
  }

  .p-archive::after{
    content:"";
    display: block;
    max-width: 400px;
    width: 32.8%;
  }

  /* イラストがある場合：差し替え */
  .p-archive .post a:hover .thumb-hover {
    opacity: 1;
  }

  .p-archive .post a:hover .thumb-main {
    opacity: 0;
  }

  /* イラストが「ない」場合：少し暗く */
  .p-archive .post a:hover .thumb:not(:has(.thumb-hover)) .thumb-main {
    opacity: 0.8;
  }


}

@media screen and (max-width: 767px){
  .p-project {
    padding: 80px 0 100px;
  }

  .p-archive {
      padding: 0 20px;
      margin: 60px auto 0;
  }

  .p-archive .post {
      margin: 0 auto 40px;
  }

  .p-archive .post:last-child {
    margin: 0 auto;
  }

  .p-all {
    margin: 0 0 100px;
  }

  .p-archive .thumb {
    height: 57.5vw;
  }


}

/* .p-single */

.single-project .logo-scrolled {
  opacity: 1;
}

.single-project .menu-btn .menu-icon span {
	background: #7092B1;
}

.single-project .l-menu {
	background: rgb(155 179 201 /30%);
}

.single-project .menu-btn .menu-text {
	color: #7092B1;
}


.p-single {
  padding: 150px 0 120px;
}

.p-single-content {
    max-width: 840px;
    padding: 0 30px;
    margin: 80px auto 0;
}

.p-single-top {
    width: calc(100% - 40px);
    margin: 0 auto;
    background: rgb(255 255 255 / 80%);
    height: 76px;
    border-radius: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
}

.p-single-top {
  transition:
    opacity 0.3s ease,
    transform 0.4s ease;
}

/* 通常位置 */
.p-single-top {
  transform: translateY(0);
}

/* 下に移動＋固定 */
.p-single-top.is-scrolled {
  position: fixed;
  top: 80px;
  left: 20px;
  z-index: 5;
}

/* フェードアウト */
.p-single-top.is-hidden {
  opacity: 0;
  pointer-events: none;
}



.p-single-heading {
    font-size: 1.8rem;
    font-weight: 400;
}

.p-single-top p {
    text-align: right;
    font-size: 1.2rem;
    line-height: 2;
}

.p-single-thumbnail img {
  width: 100%;
}

.p-single-gallery {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 30px;
}

.p-single-pic {
  margin: 80px auto 0;
  text-align: center;
}

.p-single-pic figcaption,
.p-single-half figcaption {
  font-size: 1.2rem;
  padding: 10px 0 0;
  text-align: left;
}

.p-single-thumbnail figcaption {
    font-size: 1.2rem;
    padding: 10px 30px 0;
}

.p-single-col {
  margin: 80px auto 0;
}

.p-single-block {
  padding: 0 0 35px;
  border-bottom: solid 1px #EEEEEE;
}

.p-single-block + .p-single-block {
  margin-top: 40px;
}

.p-single-block p {
  line-height: 1.9;
}

.p-single-block p + p {
  padding-top: 15px;
}

.p-single-concept {
    margin: 80px auto;
    max-width: 840px;
    padding: 0 30px;
}

.p-single-concept p {
    font-size: 1.4rem;
    line-height: 1.9;
}

.p-single-concept p + p {
    padding: 25px 0 0;
}

.p-heading {
  font-size: 1.2rem;
  color: #8895A2;
  line-height: 1;
  padding: 0 0 20px;
}

.p-pager-thumb {
  width: 180px;
  height: 115px;
}

.p-pager-thumb a {
  display: block;
  transition: .3s;
}

.p-pager-next {
    width: 458px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.p-pager-detail {
    width: calc(100% - 200px);
    padding: 20px 0 0;
}

.p-pager-back {
  padding: 20px 0 0 20px;
}

.p-pager-back a {
  display: inline-block;
  text-decoration: none;
  color: #7092B1;
  font-size: 1.2rem;
  padding: 0 0 5px;
  border-bottom: solid 1px #7092B1;
  position: relative;
  transition: .3s;
}

.p-pager-back a::before {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  top: 4px;
  left: -20px;
  background: url("../../../images/common/ico_back.svg")no-repeat;
  background-size: 10px;
  background-position: center;
}

.p-pager-detail a {
  display: inline-block;
  text-decoration: none;
  color: #7092B1;
  font-size: 1.2rem;
  padding: 0 0 5px;
  border-bottom: solid 1px #7092B1;
  position: relative;
  transition: .3s;
}

.p-pager-detail a::before {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  top: 4px;
  right: -20px;
  background: url("../../../images/common/ico_next.svg")no-repeat;
  background-size: 10px;
  background-position: center;
}

.p-pager {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin: 80px auto 0;
}

.p-pager-detail .ttl {
  padding: 18px 0 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-pager-detail .category {
  font-size: 1.2rem;
  padding: 5px 0 0;
}

@media screen and (min-width: 768px) {

  .p-pager-thumb a:hover {
    opacity: .8;
  }

  .p-pager-back a:hover {
    opacity: .8;
  }

  .p-pager-detail a:hover {
    opacity: .8;
  }

  .p-single-col {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }

  .p-single-half {
    max-width: 550px;
    width: 49.5%;
  }

}

@media screen and (max-width: 767px){

  .p-single {
    padding: 180px 0 100px;
  }

  .p-single-top {
    height: inherit;
    padding: 15px 20px;
    display: block;
    width: calc(100% - 20px);
  }

  .p-single-top.is-scrolled {
    left: 10px;
  }

  .p-single-top p {
      text-align: left;
      font-size: 1rem;
      padding: 10px 0 0;
  }

  .p-single-heading {
      font-size: 1.2rem;
  }

  .p-single-content {
      padding: 0 20px;
      margin: 50px auto 0;
  }

  .p-single-block {
    padding: 0 0 25px;
  }

  .p-single-block + .p-single-block {
    margin-top: 30px;
  }

  .p-heading {
    font-size: 1rem;
    padding: 0 0 15px;
  }

  .p-single-block p {
    font-size: 1.2rem;
  }

  .p-pager {
    flex-wrap: wrap-reverse;
  }

  .p-single-concept {
      margin: 60px auto;
      padding: 0 20px;
  }

  .p-single-concept p {
      font-size: 1.2rem;
  }

  .p-pager-back {
    width: 100%;
    margin-top: 60px;
  }

  .p-pager-next {
      width: 100%;
  }
  .p-pager-thumb {
    width: 120px;
    height: 76px;
  }

  .p-pager-detail {
      width: calc(100% - 130px);
      padding: 0;
  }

  .p-pager-detail .ttl {
    font-size: 1.2rem;
  }

  .p-pager-detail .category {
    font-size: 1rem;
  }

  .p-single-pic {
    margin: 20px auto 0;
  }

  .p-single-col {
    margin: 20px auto 0;
  }

  .p-single-half {
    margin-top: 20px;
  }

  .p-single-gallery {
    padding: 0 20px;
  }

  .p-single-pic figcaption,
  .p-single-half figcaption {
    font-size: 1rem;
    padding: 5px 0 0;
  }

  .p-single-thumbnail figcaption {
      font-size: 1rem;
      padding: 5px 20px 0;
  }

}
