@charset "UTF-8";
/* page 2/2 ｜ 元: blog.css */
.blog-card:hover .blog-card__thumb img {
  transform: scale(1.04);
}

/* 画像が無い記事のプレースホルダー（ブランド色＋カテゴリー名） */
.blog-card__thumb--placeholder {
  display: grid;
  place-items: center;
  padding: 16px;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
}
.blog-card__thumb-label {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-text);
  text-align: center;
}

/* カード下部のテキスト（3カラム向けにコンパクト） */
.blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 16px;
}

.blog-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  color: var(--color-text-sub);
  margin: 0 0 8px;
}

.blog-card__category {
  display: inline-block;
  font-size: 0.6875rem;
  padding: 2px 8px;
  border-radius: var(--radius-xl);
  background: var(--color-primary);
  color: var(--color-text);
}

.blog-card__title {
  font-size: 1rem;
  margin: 0 0 8px;
  color: var(--color-text);
  line-height: 1.5;
}

.blog-card__description {
  font-size: 0.8125rem;
  color: var(--color-text-sub);
  margin: 0;
  line-height: 1.7;
  /* 抜粋は3行で省略してカードの高さを揃える */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- 記事ページ ---- */
.article {
  max-width: 720px;
  margin: 0 auto;
}

.article__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.875rem;
  color: var(--color-text-sub);
  margin-bottom: 16px;
}

.pr-note {
  font-size: 0.8125rem;
  color: var(--color-text-sub);
  background: var(--color-primary-light);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 8px 16px;
  margin-bottom: 24px;
}

.article h2 {
  font-size: 1.375rem;
  margin: 48px 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--color-accent);
}

.article h3 {
  font-size: 1.125rem;
  margin: 32px 0 12px;
}

.article p {
  line-height: 2;
  margin: 0 0 24px;
}

.article ul,
.article ol {
  line-height: 2;
  margin: 0 0 24px;
  padding-left: 24px;
}

/* ---- 記事内のビジュアル（画像・図解） ---- */
/* 記事冒頭のアイキャッチ（一覧カード・OGPと同じ画像を本文でも見せる） */
.article__eyecatch {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 24px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.article figure {
  margin: 24px 0;
}
.article figure img {
  width: 100%;
  height: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  display: block;
}
.article figcaption {
  font-size: 0.8125rem;
  color: var(--color-text-sub);
  margin-top: 8px;
  text-align: center;
}
.article figcaption a { color: inherit; }

/* SVG図解・フロー図のブロック（スバメがコードで自作する図解用） */
.article .diagram {
  margin: 24px 0;
  padding: 24px;
  background: var(--color-primary-light);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow-x: auto;
}
.article .diagram svg { display: block; margin: 0 auto; max-width: 100%; height: auto; }
/* スマホでは図解が縮んで文字が小さくなりすぎるため、最小幅を確保して横スクロールで見せる */
@media (max-width: 600px) {
  .article .diagram { padding: 16px 12px; }
  .article .diagram svg { min-width: 560px; }
}

.article__footer {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--color-border);
  font-size: 0.875rem;
  color: var(--color-text-sub);
}

.article__back {
  display: inline-block;
  margin-top: 16px;
}
