@charset "utf-8";
/* =========================================================
   TOPICS（アーカイブ / カテゴリ一覧）
   既存CSSと干渉しないよう .topics_archive 配下に閉じている
   ========================================================= */

.topics_archive {
  --tp-navy: #3A5264;
  --tp-brown: #91725F;
  --tp-cream: #FCF6F0;
  --tp-pale: #D3DDE7;
  --tp-line: #E7EAEE;

  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 5%;
  box-sizing: border-box;
}

/* ---------- 見出し ---------- */
.topics_head {
  padding: 72px 0 0;
  text-align: center;
}

.topics_head .topics_title {
  font-family: var(--english-font);
  font-size: clamp(3.2rem, 6vw, 4.8rem);
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--tp-navy);
}

.topics_head .topics_title span {
  display: block;
  margin-top: 16px;
  font-family: var(--f-f-mincho);
  font-size: 0.95rem;
  letter-spacing: 0.22em;
  color: var(--tp-brown);
}

/* ---------- カテゴリタブ ---------- */
.topics_cats {
  margin-top: 36px;
}

.topics_cats ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.topics_cats li {
  margin: 0;
  padding: 0;
}

.topics_cats a {
  display: inline-block;
  /* 日本語カテゴリ名が縦組みに折れるのを防ぐ */
  white-space: nowrap;
  font-family: var(--english-font), var(--f-f-mincho);
  font-size: 0.95rem;
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--tp-navy);
  background: #fff;
  border: 1px solid var(--tp-pale);
  border-radius: 999px;
  padding: 13px 26px;
  transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}

.topics_cats a:hover {
  background: var(--tp-cream);
  border-color: var(--tp-brown);
  color: var(--tp-brown);
}

.topics_cats .is-current a {
  background: var(--tp-navy);
  border-color: var(--tp-navy);
  color: #fff;
}

/* ---------- 記事一覧 ---------- */
.topics_list {
  margin: 56px 0 0;
  border-top: 1px solid var(--tp-line);
  list-style: none;
  padding: 0;
}

.topics_item {
  border-bottom: 1px solid var(--tp-line);
}

.topics_link {
  display: grid;
  grid-template-columns: 200px 1fr 20px;
  align-items: center;
  gap: 0 28px;
  padding: 22px 12px;
  transition: background-color 0.25s;
}

.topics_link:hover {
  background: var(--tp-cream);
}

.topics_thumb {
  display: block;
  width: 200px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 4px;
  background: var(--tp-cream);
}

.topics_thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

/* アイキャッチ未設定時のロゴは切り抜かず全体を見せる */
.topics_thumb.is-noimage img {
  object-fit: contain;
  padding: 12%;
  box-sizing: border-box;
}

.topics_link:hover .topics_thumb img {
  transform: scale(1.05);
}

.topics_body {
  display: block;
  min-width: 0;
}

.topics_meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 10px;
}

.topics_date {
  font-family: var(--english-font);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  color: var(--tp-brown);
}

.topics_cat {
  font-size: 0.72rem;
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--tp-navy);
  background: #fff;
  border: 1px solid var(--tp-pale);
  border-radius: 999px;
  padding: 5px 12px;
}

.topics_ttl {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-family: var(--f-f-mincho);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--tp-navy);
}

.topics_arrow {
  justify-self: end;
  width: 9px;
  height: 9px;
  border-top: 1px solid var(--tp-navy);
  border-right: 1px solid var(--tp-navy);
  transform: rotate(45deg);
  transition: transform 0.25s, border-color 0.25s;
}

.topics_link:hover .topics_arrow {
  transform: rotate(45deg) translate(3px, -3px);
  border-color: var(--tp-brown);
}

.topics_empty {
  margin: 56px 0;
  text-align: center;
  font-family: var(--f-f-mincho);
  color: var(--tp-navy);
}

/* ---------- ページ送り ---------- */
.topics_pager {
  margin: 56px 0 100px;
}

.topics_pager .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.topics_pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  box-sizing: border-box;
  font-family: var(--english-font);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  color: var(--tp-navy);
  background: #fff;
  border: 1px solid var(--tp-pale);
  border-radius: 999px;
  transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}

.topics_pager a.page-numbers:hover {
  background: var(--tp-cream);
  border-color: var(--tp-brown);
  color: var(--tp-brown);
}

.topics_pager .page-numbers.current {
  background: var(--tp-navy);
  border-color: var(--tp-navy);
  color: #fff;
}

.topics_pager .page-numbers.dots {
  border-color: transparent;
  background: transparent;
  min-width: 24px;
}

/* =========================================================
   SP
   ========================================================= */
@media screen and (max-width: 767px) {

  .topics_head {
    padding-top: 48px;
  }

  .topics_head .topics_title span {
    margin-top: 12px;
    font-size: 0.8rem;
    letter-spacing: 0.18em;
  }

  .topics_cats {
    margin-top: 26px;
  }

  .topics_cats ul {
    gap: 8px;
  }

  .topics_cats a {
    font-size: 0.82rem;
    padding: 11px 18px;
  }

  .topics_list {
    margin-top: 36px;
  }

  .topics_link {
    grid-template-columns: 108px 1fr;
    gap: 0 16px;
    padding: 16px 4px;
  }

  .topics_thumb {
    width: 108px;
  }

  .topics_meta {
    gap: 6px 10px;
    margin-bottom: 6px;
  }

  .topics_date {
    font-size: 0.75rem;
  }

  .topics_cat {
    font-size: 0.65rem;
    padding: 4px 9px;
  }

  .topics_ttl {
    font-size: 0.92rem;
    line-height: 1.6;
    -webkit-line-clamp: 3;
  }

  /* SPでは矢印を出さない */
  .topics_arrow {
    display: none;
  }

  .topics_pager {
    margin: 40px 0 72px;
  }

  .topics_pager .page-numbers {
    min-width: 38px;
    height: 38px;
    padding: 0 9px;
    font-size: 0.82rem;
  }
}
