@charset "UTF-8";
/* CSS Document */
.js-slide-right {
	padding: 1rem 0;
}

#topics-article {
  padding: 7rem 4% 2rem;
}
#topics-article aside a {
  display: block;
  width: 100%;
  height: 100%;
}
.topics-aside-forDP {
  display: none;
}
.topic-article-snsbar {
  display: none;
}
#topics-article h1 {
  line-height: 2.5rem;
  padding-bottom: 1.2rem;
}
.topic-meta {
  display: flex;
  align-items: center;
  gap: 0.5em; /* ラベルと日付の間隔 */
  font-size: 0.9rem;
  color: #333;
}
/* ラベルのデザイン例 */
.topic-label {
  display: inline-block;
  background-color: #eef6f8;
  color: #007b94;
  padding: 0.2em 0.6em;
  border-radius: 0.5em;
  font-weight: 600;
}
/* 日付を少し抑えめに */
.topic-meta time {
  color: #666;
  font-size: 0.85em;
}
.topic-article-mainbg {
  /* 親要素を相対位置にする */
  position: relative;
  /* 子要素を配置するため */
  width: 100%; /* 親要素の幅いっぱいに広げる */
  aspect-ratio: 4 / 3; /* アスペクト比を16:9に固定 */
  overflow: hidden; /* 子要素がはみ出した部分は非表示（トリミング） */
  border-radius: 8px; /* ここに角丸の値を指定 */
}
.topic-article-mainbg .topics-image {
  /* 画像のコンテナを親要素いっぱいに広げる */
  width: 100%;
  height: 100%;
}
.topic-article-mainbg img {
  /* 画像をコンテナいっぱいに広げ、アスペクト比を保ちつつトリミングする */
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* 画像を上下中央に配置する */
  object-position: center;
}
/* 親要素: Flexboxで子要素を横並びにする */
.topic-article-sdgs-container {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: flex;
  gap: 0; /* 各figure間の間隔を調整（任意） */
  align-items: center; /* アイコンが上下中央に揃うようにする */
}
/* figure要素: 高さを2remに固定する */
.topic-article-sdgs-container figure {
  height: 2.5rem;
  /* figure内に画像が収まるように設定 */
  display: flex;
  align-items: center;
  justify-content: center;
}
/* img要素: 高さを親要素（figure）に合わせ、縦横比を保つ */
.topic-article-sdgs-container figure img {
  height: 100%; /* 親要素(figure)の高さに合わせる */
  width: auto; /* 高さに合わせて幅を自動調整し、縦横比を保つ */
}
.topic-article-mainbg-container figcaption {
  display: flex;
  align-items: flex-start;
  position: relative;
  padding: 1.2rem; /* L字分の余白 */
  font-size: 1.2rem;
  color: #333;
  line-height: 1.8; /* お好みで調整 */
}
/* L字型（左側・文字中央揃え） */
.topic-article-mainbg-container figcaption::before {
  position: absolute;
  display: inline-block;
  height: 1.2rem;
  width: 1.2rem;
  border-left: 1px solid var(--green);
  border-bottom: 1px solid var(--green);
  left: -1px;
  content: "";
}
.topic-article-text p {
	text-align: justify;
  text-indent: 1em;
  overflow-wrap: break-word; /* 1行に収まらない長い単語を途中で改行 */
  word-break: normal; /* 単語の途中の不自然な改行を防ぐ */
  margin: 0 0 1.6rem;
}
.topic-image-other {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

/* liのアスペクト比指定を解除して高さを自然に */
.topic-image-other li {
  list-style: none;
}

/* figureを縦方向に配置 */
.topic-image-other figure {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
}

/* 画像は比率維持で幅いっぱいに */
.topic-image-other img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}

/* figcaptionは画像の下に */
.topic-image-other figcaption {
  display: flex;
  align-items: flex-start;
  position: relative;
  padding: 0 1.2rem; /* L字分の余白 */
  font-size: 1.2rem;
  color: #333;
  line-height: 1.8; /* お好みで調整 */
}
.topic-image-other figcaption::before{
  position: absolute;
  display: inline-block;
  height: 1.2rem;
  width: 1.2rem;
  border-left: 1px solid var(--green);
  border-bottom: 1px solid var(--green);
  left: -1px;
  content: "";
}
@media (min-width: 768px) {
  .topic-article-mainbg {
    aspect-ratio: 16 / 9; /* アスペクト比を16:9に固定 */
  }
  .topics-aside-forDP {
    display: block;
  }
  .topics-article-flex {
    position: relative;
    display: flex;
    align-items: flex-start;
    flex-direction: row-reverse;
    column-gap: 4rem;
  }
  .topics-article-flex aside {
    position: sticky;
    top: 12rem;
    right: 0;
    width: 100%;
  }
  .topic-article-link {
    flex: 2;
  }
  .topic-article-sns {
	  flex-basis: 4%;
  }
  .topics-article-flex article {
    width: 100%;
    flex: 7;
  }
  /* 親要素: Flexboxで子要素を縦並びにする */
  .topic-article-snsbar {
    display: flex; /* 子要素をFlexアイテムにする */
    /*flex-direction: column;*/ /* Flexアイテムを縦方向に並べる */
    gap: 2rem; /* 各要素間の間隔を調整（任意） */
    width: 30px; /* 親要素の幅（任意） */
	flex-direction: column;
  }
  /* a要素（Flexアイテム） */
  .topic-article-snsbar a {
    flex-shrink: 0; /* 親要素のサイズに合わせて縮小しない */
    width: 100%; /* 親要素のdivの幅に合わせる */
    aspect-ratio: 1 / 1; /* アスペクト比を1:1に固定して正方形にする */
    overflow: hidden; /* 画像がはみ出た部分を非表示（トリミング） */
  }
  /* img要素 */
  .topic-article-snsbar a img {
    width: 100%; /* 親要素のaいっぱいに広げる */
    height: 100%; /* 親要素のaいっぱいに広げる */
    object-fit: cover; /* アスペクト比を保ちつつ、コンテナを覆うようにトリミング */
    display: block; /* imgをブロック要素にすることで、余分なスペースをなくす */
  }
  .topic-article-link ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .topic-article-link ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .topic-article-link li {
    margin-bottom: 0.5em;
  }
  .topic-article-link a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%; /* ← これがポイント！ */
    text-decoration: none;
    color: #333;
    padding: 0.4em 0.6em;
    box-sizing: border-box;
    border-bottom: 1px solid #ddd;
  }
  .topic-article-link a:hover {
    background-color: #f4f8fa;
  }
  .topic-article-link a span {
    flex-grow: 1;
  }
  .topic-article-link a .internal-arrow {
    width: 0.8em;
    height: 0.8em;
    stroke: currentColor;
    stroke-width: 10;
    fill: none;
    flex-shrink: 0;
  }
.topic-image-other {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
}

