@charset "UTF-8";

/* =========================================
   バナーレイアウト
========================================= */
#common-banner-area {
  width: 100%;
  max-width: 1000px;
  margin: auto;
  padding: 0 20px;
  box-sizing: border-box;
}

#common-banner-area:has(.common-banner-link:last-child:nth-child(odd)) {
  max-width: 710px;
}

.common-banner-wrapper {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}

.common-banner-link {
  display: block;
  width: 100%;
  aspect-ratio: 670 / 120; 
  background-color: #f4f4f4;
  border-radius: 8px;
  overflow: hidden;
  transition: opacity 0.3s ease;
}

.common-banner-link:hover {
  opacity: 0.8;
}

.common-banner-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 600px) {
  .common-banner-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }
  
.common-banner-wrapper:has(.common-banner-link:last-child:nth-child(odd)) {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   関連記事レイアウト
========================================= */

/* 1. 関連記事レイアウト*/
.Article .Inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
  gap: 20px;
}

/* 2. Entry - 共通デザイン */
.Article .Entry {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.3s ease, opacity 0.3s ease; 
}

.Article .Entry:hover,
.Article .Entry:active {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  opacity: 0.8;
}

.Article .Entry .link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.Article .Entry:hover .link,
.Article .Entry:active .link {
  text-decoration: none;
}

/* --- サムネイル画像 --- */
.Article .Entry .Photo {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.Article .Entry .Photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- テキストエリア --- */
.Article .Entry .Txt {
  padding: 16px;
  text-align: left;
}

/* --- カテゴリタグ --- */
.Entry .tag {
  display: inline-block;
  margin: 0 6px 10px 0;
  font-size: 11px;
  font-weight: bold;
  color: #0066cc;
  border: 1px solid #0066cc;
  padding: 2px 8px;
  border-radius: 4px;
}

/* --- タイトル --- */
.Entry .Ttl {
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
  font-weight: bold;
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
  height: auto; 
}

/* 3. レスポンシブ対応 (タブレット) */
@media screen and (max-width: 1024px) {
  .Article .Inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* 4. レスポンシブ対応 (スマートフォン) */
@media screen and (max-width: 767px) {
  .Article .Inner {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  
  .Article .Entry .Ttl {
    font-size: 14px;
  }
}