/*
 * Next ITM 施工事例（works）専用スタイルシート
 * main.css（共通）・page.css（Page Head 等の下層ページ共通パーツ）を読み込んだ上で、
 * 施工事例の一覧（アーカイブ・カテゴリー/タグ別）・詳細ページで読み込む
 * Works Archive（施工事例一覧）
 * Works Single（施工事例詳細）
 */

/* ==========================================================================
   Works Archive（施工事例一覧）
   ========================================================================== */
.works_archive {
  background-color: #fff;
  color: var(--black);
  position: relative;
  z-index: 1;
  padding-block: 100px 160px;
}

.works_archive_inner {
  display: flex;
  align-items: flex-start;
  gap: 90px;
}

.works_sidebar {
  flex-shrink: 0;
  width: 260px;
}

.works_sidebar_block + .works_sidebar_block {
  margin-top: 46px;
}

.works_sidebar_heading {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgb(172 172 172 / 0.4);
  font-family: var(--font_en);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0;
}

.works_category_list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.works_category_list li {
  font-size: var(--font_size-sm);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.works_category_list a {
  color: #b3b3b3;
  transition: color 0.3s ease;
}

.works_category_list a:hover {
  color: var(--black);
}

.works_category_list li.is-active a {
  color: var(--black);
  font-weight: 700;
}

.works_tag_list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 7px;
}

.works_tag_list a {
  display: block;
  border: 1px solid #a0a0a0;
  border-radius: 4px;
  color: #a0a0a0;
  font-size: var(--font_size-xs);
  line-height: 1.8;
  padding: 0 7px;
  text-align: center;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.works_tag_list li.is-active a,
.works_tag_list a:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: #fff;
}

.works_content {
  flex-grow: 1;
  min-width: 0;
}

.works_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px 34px;
}

.works_card_link {
  display: block;
}

.works_card_thumb {
  aspect-ratio: 16 / 10.77;
  overflow: hidden;
  background-color: #eee;
}

.works_card_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.works_card_link:hover .works_card_thumb img {
  transform: scale(1.06);
}

.works_card_body {
  padding-top: 20px;
}

.works_card_meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 2px;
}

.works_card_date {
  font-family: var(--font_en);
  letter-spacing: 0;
}

.works_card_title {
  margin: 0;
  font-size: var(--font_size-md);
  font-weight: 500;
  line-height: 1.6;
}

.works_empty {
  font-size: var(--font_size-sm);
}

.works_archive .pagination .nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 100px;
}

.works_archive .pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  border-radius: 4px;
  font-family: var(--font_en);
  font-size: var(--font_size-sm);
  letter-spacing: 0;
  transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}

.works_archive .pagination .page-numbers.current {
  background-color: #000;
  color: #fff;
}

.works_archive .pagination .page-numbers.dots {
  opacity: 0.4;
}

.works_archive .pagination a.page-numbers:hover {
  opacity: 0.6;
}

.works_archive .pagination .prev.page-numbers,
.works_archive .pagination .next.page-numbers {
  opacity: 0.5;
}

.works_archive .pagination .prev.page-numbers:hover,
.works_archive .pagination .next.page-numbers:hover {
  opacity: 1;
}

.works_pagination_arrow {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-style: solid;
  border-color: currentColor;
  border-width: 0 1px 1px 0;
}

.works_archive .pagination .prev.page-numbers .works_pagination_arrow {
  transform: rotate(135deg);
}

.works_archive .pagination .next.page-numbers .works_pagination_arrow {
  transform: rotate(-45deg);
}

@media (max-width: 767px) {
  .works_archive {
    padding-block: 60px 80px;
  }

  .works_archive_inner {
    flex-direction: column-reverse;
    gap: 80px;
  }

  .works_sidebar {
    width: 100%;
  }

  .works_grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .works_archive .pagination .nav-links {
    margin-top: 60px;
  }
}

/* ==========================================================================
   Works Single（施工事例詳細）
   ========================================================================== */
.works_single_meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 10px;
}

.works_single_date {
  font-family: var(--font_en);
  letter-spacing: 0;
}

.works_single_meta_divider {
  opacity: 0.6;
}

.works_single_title {
  margin: 0 0 18px;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

@media (max-width: 767px) {
  .works_single_title {
    font-size: 1.5rem;
  }
}

.works_single_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 7px;
}

.works_single_tags a {
  display: block;
  border: 1px solid #a0a0a0;
  border-radius: 4px;
  color: #a0a0a0;
  font-size: var(--font_size-xs);
  line-height: 1.8;
  padding: 0 7px;
  text-align: center;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.works_single_tags a:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: #fff;
}

/*
  施工写真スライダー（Splide）
  works_gallery_main: メインビジュアル / works_gallery_thumbs: サムネイルナビゲーション
 */
.works_gallery {
  margin-top: 42px;
}

.works_gallery_main .splide__slide img {
  width: 100%;
  aspect-ratio: 16 / 10.7;
  object-fit: cover;
  border-radius: 4px;
}

.works_gallery_main .splide__arrow {
  width: 55px;
  height: 55px;
  background-color: #1e1e1e;
  opacity: 1;
}

.works_gallery_main .splide__arrow svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: #fff;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.works_gallery_main .splide__arrow:hover:not(:disabled) {
  background-color: rgb(0 0 0 / 0.8);
}

.works_gallery_main .splide__arrow--prev {
  left: -28px;
}

.works_gallery_main .splide__arrow--next {
  right: -28px;
}

.works_gallery_thumbs {
  margin-top: 24px;
}

.works_gallery_thumbs .splide__slide {
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.3s ease;
}

.works_gallery_thumbs .splide__slide.is-active {
  border: none !important;
  opacity: 1;
}

/*
  画面幅1600px時（.c-inner 最大幅1200px、サイドバー220px + gap60pxを除いたコンテンツ列920px）に
  5枚（gap12px×4）を敷き詰めると1枚の幅は174.4pxになる。その時の高さが110pxになる比率。
 */
.works_gallery_thumbs .splide__slide img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10.7;
  object-fit: cover;
}

.works_single_content {
  margin-top: 44px;
}

.works_single_content > *:not(:last-child) {
  margin-bottom: 2.4em;
}

.works_detail {
  margin-top: 64px;
}

.works_points {
  margin-top: 80px;
}

/*
  Company Section label（.philosophy_body .section_label）と同じスタイル
 */
.works_detail_heading,
.works_points_heading {
  display: flex;
  align-items: center;
  gap: 24px;
  font-family: var(--font_en);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0;
}

.works_detail_heading::after,
.works_points_heading::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: rgb(172 172 172 / 0.4);
}

.works_detail_list {
  margin: 52px 0 0;
  border: 1px solid rgb(30 30 30 / 0.4);
  border-radius: 8px;
  font-size: 1rem;
  letter-spacing: 0.1em;
  overflow: hidden;
}

.works_detail_row {
  display: grid;
  grid-template-columns: 28% 1fr;
  gap: 16px;
  padding: 17px 30px;
}

.works_detail_row + .works_detail_row {
  border-top: 1px solid rgb(30 30 30 / 0.4);
}

.works_detail_label {
  color: rgb(30 30 30 / 0.5);
}

.works_detail_value {
  margin: 0;
}

.works_single_nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgb(30 30 30 / 0.15);
  font-family: var(--font_en);
  font-size: var(--font_size-sm);
  letter-spacing: 0.05em;
  margin-top: 130px;
  padding-top: 36px;
}

.works_single_nav_item--prev,
.works_single_nav_item--next {
  flex: 1;
}

.works_single_nav_item--next {
  text-align: right;
}

.works_single_nav a {
  transition: opacity 0.3s ease;
}

.works_single_nav a:hover {
  opacity: 0.6;
}

.works_single_nav_item--prev a,
.works_single_nav_item--next a {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  font-size: 1rem;
  font-weight: 500;
}

.works_single_nav_item--prev .works_pagination_arrow {
  transform: rotate(135deg);
}

.works_single_nav_item--next .works_pagination_arrow {
  transform: rotate(-45deg);
}

@media (max-width: 767px) {
  .works_detail,
  .works_points {
    margin-bottom: 60px;
  }

  .works_gallery_main .splide__arrow {
    width: 36px;
    height: 36px;
  }

  .works_gallery_main .splide__arrow--prev {
    left: -18px;
  }

  .works_gallery_main .splide__arrow--next {
    right: -18px;
  }

  .works_gallery_thumbs {
    margin-top: 16px;
  }

  .works_detail_row {
    gap: 6px;
    padding: 17px 20px;
  }

  .works_detail_list {
    font-size: var(--font_size-sm);
  }

  .works_single_nav_item--prev a,
  .works_single_nav_item--next a {
    gap: 10px;
    font-size: var(--font_size-sm);
  }
}
