/**
 * Component: card.css
 * Usage: 共通カードコンポーネント
 * Source: base.css から分割
 * Used by: archive-recommend, archive-voice, archive-case等
 *
 * 構成:
 * - .bl_card: カードコンテナ
 * - .bl_card_header: ヘッダー
 * - .bl_card_thumb: サムネイル
 * - .bl_card_body: ボディ
 * - .bl_card_ttl: タイトル
 * - .bl_card_txt: テキスト
 */

/* ================================================
   共通カードコンポーネント（モバイルファースト）
   ================================================ */
.bl_card {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  background: var(--color-cream);
  box-shadow: var(--shadow-card);
}

.bl_card_header {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.bl_card_thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.bl_card_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bl_card_body {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.bl_card_ttl {
  font-size: var(--font-lg);
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

.bl_card_txt {
  font-size: var(--font-sm);
  color: var(--color-gray);
  margin: 0;
}

/* ================================================
   Tablet (768px〜)
   ================================================ */
@media screen and (min-width: 768px) {
  .bl_card {
    padding: var(--space-lg) var(--space-lg) var(--space-2xl);
  }

  .bl_card_ttl {
    font-size: var(--font-xl);
  }

  .bl_card_txt {
    font-size: var(--font-base);
  }
}

/* ================================================
   PC (1024px〜)
   ================================================ */
@media screen and (min-width: 1024px) {
  .bl_card {
    padding: var(--space-lg);
  }
}
