@charset "UTF-8";
/*====================
works
======================  */


.works-archive {
  padding: 60px 5.3%;
}

.mainImg__pc {
    display: none;
}

.mainImg__sp {
    opacity: 0.5;
    position: relative;
}

.mainvisual__title {
    display: grid;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%);
}

.mainvisual__group {
    position: relative
}

.works__group {
  display: grid;
  grid-template-columns: 1fr;
}

.works__img {
    width: 100%;
}

.works__name {
    font-weight: 700;
    margin-top: 10px;
    text-align: center;
    font-size: 1.5rem
}

.works__area {
    text-align: center;
}

.works__desc {
    margin-top: 10px;
}


/* .pagination */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 8px;
    margin-top: 20px;
}

.pagination .nav-links {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

.pagination .page-numbers {
  display: inline-block;
  padding: 3px 10px;
  color: var(--primary-black);
  text-decoration: none;
  font-weight: 500;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.pagination .page-numbers:hover {
  background-color: var(--primary-darkgreen);
  color: var(--primary-white);
  border-color: var(--primary-darkgreen);
}

.pagination .page-numbers.current {
  background-color: var(--primary-darkgreen);
  color: var(--primary-white);
  border-color: var(--primary-darkgreen);
  cursor: default;
  pointer-events: none;
}

.pagination .prev.page-numbers,
.pagination .next.page-numbers {
  font-weight: 600;
}

.category {
    font-size: 1.6rem;
    color: var(--primary-darkgreen);
    font-family: "Zen Old Mincho";
    letter-spacing: 0.1em;
    margin-top: 50px;
    margin-bottom: 10px;
}

.works__category {
    display: flex;
    align-items: center;  
    gap: 14px;
    flex-wrap: wrap;
}

.works__tag {
    padding: 4px 0;
    border: 0.3px solid var(--primary-darkgreen);
    background-color: var(--primary-white); 
    color: var(--primary-darkgreen);
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease;
    min-width: 100px;
}

.works__tag:hover {
  background-color: var(--primary-darkgreen);
  color: var(--primary-white);
}

.works-archive .works__item img {
  margin: 0;
  width: 335px;
  height: 250px;
}

.works-archive .works__item {
  padding: 0;
  margin-top: 50px;
}

@media screen and (min-width: 1024px) {
  .works-archive .works__item img {
    margin: 0;
    width: 100%;
    height: auto;
  }
  .works-archive {
    padding: 130px 80px;
  }

}

@media screen and (min-width: 1440px) {
  .works-archive {
    padding: 130px 120px;
  }

}

/* =========================
   Works detail page
========================= */

.works-detail {
  margin: 0 auto;
  padding: 60px 5.3%;
}

.works-detail__title {
  font-size: 2rem;
  margin-bottom: 10px;
  margin-top: 50px;
}

.works-detail__category {
  color: var(--primary-darkgreen);
  max-width: 1200px;
  display: flex;
  margin: 10px auto 0;
}

.works-detail__tag {
  display: inline-block;
  background: var(--primary-white);              
  border: 1px solid var(--primary-darkgreen);        
  padding: 3px 8px;
  font-size: 1rem;
}


.works-detail__image img {
  width: 100%;
  height: auto;
  margin-top: 50px;
}

.works-detail__content {
  line-height: 1.8;
  margin-top: 20px;
}

/* aタグは親の色を継承 */
.btn__group-03 a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s;
}

/* 矢印のアニメーション準備 */
.btn__group-03 .arrow {
    transition: filter 0.3s;
}

/* hover時 */
.btn__group-03:hover {
    background-color: #6E7C62; /* border色 */
    color: #fff;
}

/* hover時：矢印を白に */
.btn__group-03:hover .arrow {
    filter: brightness(0) invert(1);
}


.works-detail__nav {
  margin: 40px auto 0;
  display: flex;
  justify-content: space-between;
  max-width: 1200px;
}

.works-detail__back.btn__group-03 {
  margin-top: 50px;
}


.works-detail__tag a {
  text-decoration: none;
  color: var(--primary-black);
}

.works-detail__nav a {
  text-decoration: none;
  color: var(--primary-black);
}

.works-detail__content img {
  width: 100%;
  height: auto;
  display: block;
  margin: 50px auto 20px;
}


@media screen and (max-width: 344px) {
    .works__category {
        gap: 8px;
    }

    .works__tag {
        min-width: 95px;
    }   
}


/* works pc */
@media screen and (min-width: 769px) {
    .mainImg__pc {
        display: block;
        opacity: 0.5;
        width: 100%;
    }

    .mainImg__sp {
        display: none;
    }
    
    .works__group {
        display: grid;
        justify-content: center;
        gap: 30px;
        margin-top: 20px;
        grid-template-columns: repeat(2, 1fr);
    }

    .works__item {
        margin: 0;
        width: 100%;
    }

    .pagination {
        margin-top: 30px;
    }

    .pagination .page-numbers {
        padding: 5px 10px;
    }
}

@media screen and (min-width: 1024px) {
    .works-detail {
        padding: 130px 80px;
      }

    .works-detail__title {
      font-size: 3rem;
      margin: 80px auto 0;
      max-width: 1200px;
      display: flex;
      }

    .works-detail__image img {
      margin-top: 80px;
    }

    .works-detail__tag {
      font-size: 1.6rem;
    }

    .works-detail__nav {
      margin: 80px auto 0;
    }

    .works__txt {
        font-size: 2rem;
        max-width: 1200px;
        margin: auto;
    }

    .works__name,
    .works__area {
        font-size: 1.8rem
    }

     .works__group {
        margin: 30px auto;
        gap: 40px;
    }

    .works__category {
        margin: 10px auto;
        gap: 20px;
        max-width: 1200px;
    }

    .category {
        font-size: 1.8rem;
        max-width: 1200px;
        margin: auto;
        margin-top: 60px;
    }

    .works__tag {
        padding: 6px 10px;
    }

    .pagination__item a {
        font-size: 1.6rem;
        width: 20px;
        height: 24px;
    }

      .pagination .page-numbers {
        padding: 6px 15px;
    }

     .pagination {
        margin-top: 60px;
    }

}

@media screen and (min-width: 1440px) {
     .works-detail {
        padding: 130px 120px;
      }

     .pagination__item a {
        font-size: 2rem;
        width: 30px;
        height: 30px;
    }

    .pagination .page-numbers {
        padding: 6px 15px;
    }

     .works__group {
        max-width: 1200px;
    }

}

/* 1440px pc */



/* works archive header */
.works-archive__header {
  max-width: 960px;
  margin: 0 auto 60px;
  padding: 0 20px;
  text-align: center;
}

.works-archive__title {
  font-size: 2rem;
  margin-bottom: 24px;
}

.works-archive__lead {
  font-size: 1.4rem;
  line-height: 1.8;
  color: var(--primary-black);
  max-width: 600px;
  margin: 0 auto;
}

/* セクション全体の余白 */
.works-category-archive {
  padding: 120px 5.3% 60px;
}

/* 施工事例のアイテム全体 */
.works-category-archive .works-card {
    margin-top: 50px;
    padding: 0;
}

/* アイキャッチ画像 */
.works-category-archive .works-card__image {
  width: 335px;
  margin: 0;
}

.works-card a {
  text-decoration: none;
  color: inherit;
}


.works-card__title {
  font-size: 1.5rem;
  margin-top: 10px;
  text-align: center;
}

.works-category-title {
    text-align: center;
    font-size: 1.8rem;
    color: var(--primary-darkgreen);
}

.works-card__image img {
  width: 100%;
  height: auto;
  display: block;
  margin: 50px auto 0;
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;  
  overflow: hidden;
}

.works-text {
  margin-top: 10px;
}

.btn__group-03.works-detail__back {
  margin-top: 50px !important;
}

.works-item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

/* 施工事例の写真と説明のコンテナ */
.works-columns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 50px;
  
}

.works-archive__list {
  display: block;
}

.works__item a {
  text-decoration: none;
  color: var(--primary-black);
}

.works-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(80, 92, 72, 0.75);
  color: var(--primary-white);
  font-size: 1.6rem;
  letter-spacing: .05em;
  opacity: 0;
  transition: opacity .3s ease;
  font-weight: 500;
  text-transform: uppercase;
}

.works-card__image {
  position: relative;
}

.mainvisual__group {
  cursor: default;
}


@media screen and (min-width: 769px) {
    .works-columns {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    justify-content: center;
  }

  /* 1枚だけのとき */
  .works-columns:has(.works-item:only-child) .works-item {
    width: 70%;
  }

  .works-text {
    margin: 20px auto 0;
  }

  .works-archive__list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;       /* 折り返しあり */
    gap: 24px;             /* 子要素の間隔 */
  }

   .works-card {
    flex: 0 0 48%;         /* 約2列レイアウト */
    max-width: 48%;
  }

  .works-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 30px; 
  }

  .works-item {
    flex: 0 0 calc(50% - 15px); 
    max-width: calc(50% - 15px);
    padding: 0;      
  }

  .works-item img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;   /* ← 好きな比率 */
    overflow: hidden;
  }

  
  .works-columns--single .works-item {
    flex: none;
    max-width: 100%;
    width: 100%;
  }
  
   .works-card__image:hover .works-card__overlay {
    opacity: 1;
  }

}

@media screen and (min-width: 1024px) {
  .works-category-archive .works__img {
    width: 100%;
  }

  .works-category-title {
    text-align: center;
    font-size: 2.2rem;
    color: var(--primary-darkgreen);
  }

  .works-archive__lead {
    font-size: 1.6rem;
  }

  .works-archive__lead {
    font-size: 1.6rem;
  }

  .works-archive__lead {
    max-width: 930px;
  }

  .btn__group-03.works-detail__back {
    margin-top: 80px !important;
  }

  .works-detail__content img {
      max-width: 100%; 
      height: auto;
      /* alignnone など、回り込み指定を強制的に解除 */
      float: none !important; 
      display: block; /* 画像をブロック要素として扱い、縦に並ぶようにする */
      margin-left: auto;
      margin-right: auto;
    }

   .works-columns {
      margin: 80px auto 0;
      gap: 40px;
      max-width: 1200px;
    }

    .works-photo img {
        margin: auto 0;
    }

    .works-card__title {
    font-size: 1.8rem;
    margin-top: 10px;
    text-align: center;
  }
    
  .works-item {
    flex: 0 0 calc(50% - 20px); 
    max-width: calc(50% - 20px);
    padding: 0;      
  }

   .works-archive__list {    
    gap: 30px; 
    max-width: 1200px;
    margin: auto;            
  }

  .works-text {
    max-width: 1200px;
  }
}