/* ベーススタイル */
* {
    box-sizing: border-box;
}
body {
    font-family: var(--font-family);
    font-weight: var(--font-weight-regular);
    color: var(--color-black);
    line-height: var(--line-height-base);
    margin: 0;
    background: var(--color-white);
}
/* タイポグラフィ */
h1, h2, h3, h4, h5, h6 {
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-narrow);
    margin: 0 0 var(--spacing-16) 0;
    color: var(--color-black);
}
h1 { 
    font-size: var(--font-size-title); 
    line-height: var(--line-height-limited); 
    margin-bottom: 0;
    font-weight: var(--font-weight-bold);
}
h2 { 
    font-size: var(--font-size-title); 
    line-height: var(--line-height-limited);
    font-weight: var(--font-weight-bold);
}
h3 { font-size: var(--font-size-ll); }
h4 { font-size: var(--font-size-ll); }
h5 { font-size: var(--font-size-l); }
h6 { font-size: var(--font-size-l); }
p {
    margin: 0 0 var(--spacing-16) 0;
}
a {
    color: var(--color-black);
    text-decoration: none;
    transition: color 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);
}
a:hover {
    color: var(--color-black);
    text-decoration: none; /* アンダーライン削除 */
}
/* レイアウト */
.container {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--spacing-20);
}
/* 記事コンテンツ専用のコンテナ */
.article-content {
    margin: 0 auto;
}
.article-content p {
    margin-bottom: var(--spacing-24); /* 段落間の余白を増加 */
    line-height: var(--line-height-base);
}
/* ヒーローセクション */
.hero-section {
    background: linear-gradient(135deg, var(--color-bg-section) 0%, var(--color-bg-section) 100%);
    padding: var(--spacing-64) 0;
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}
/* セクションタイトルのサイズ調整 */
.section-title-small {
    font-size: var(--font-size-ll);
    font-weight: 600;
}
.subsection-title-small {
    font-size: 1.125rem !important;
    font-weight: 600;
}
.persona-name-small {
    font-size: 0.875rem !important;
}
/* スピーチ一覧ページ専用スタイル */
.page-header {
    background: linear-gradient(135deg, var(--color-bg-section) 0%, var(--color-white) 100%);
    padding: var(--spacing-48) 0;
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}
.page-title {
    font-size: var(--font-size-title);
    line-height: var(--line-height-limited);
    font-weight: 700;
    margin-bottom: var(--spacing-16);
    color: var(--color-black);
}
.page-description {
    font-size: var(--font-size-m);
    color: var(--color-dark-gray);
    max-width: 600px;
    margin: 0 auto;
}
/* 統計カード */
.speeches-stats {
    margin-bottom: var(--spacing-48);
}
.stats-card {
    background: var(--color-bg-section);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: var(--spacing-32);
    text-align: center;
}
.stats-card h3 {
    margin-bottom: var(--spacing-24);
    color: var(--text-primary);
}
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--spacing-24);
}
.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.stat-number {
    font-size: var(--font-size-title);
    line-height: var(--line-height-limited);
    font-weight: 700;
    color: var(--primary);
    margin-bottom: var(--spacing-4);
}
.stat-label {
    font-size: var(--font-size-s);
    color: var(--text-secondary);
}
/* スピーチカード */
.speech-card {
    /* ホバーアニメーション削除 */
}
.card-header {
    padding-bottom: var(--spacing-16);
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--spacing-16);
}
.card-footer {
    padding-top: var(--spacing-16);
    border-top: 1px solid var(--color-border);
}
/* ペルソナミニプレビュー */
.personas-mini-preview {
    margin: var(--spacing-16) 0;
}
.mini-preview-title {
    font-size: var(--font-size-s);
    font-weight: 600;
    margin-bottom: var(--spacing-8);
    color: var(--text-secondary);
}
.personas-avatars {
    display: flex;
    gap: var(--spacing-8);
    flex-wrap: wrap;
}
.persona-mini {
    display: flex;
    align-items: center;
    gap: var(--spacing-4);
    padding: var(--spacing-4) var(--spacing-8);
    background: var(--color-bg-section);
    border-radius: 20px;
    border: 1px solid var(--color-border);
}
.persona-mini-name {
    font-size: var(--font-size-ss);
    color: var(--text-secondary);
    font-weight: 500;
}
/* ソース情報 */
.source-info a {
    text-decoration: none;
    transition: color 0.2s ease;
}
.source-info a:hover {
    color: var(--primary);
}
/* ページネーション */
.pagination-wrapper {
    text-align: center;
}
.pagination {
    display: flex;
    gap: var(--spacing-12);
    justify-content: center;
}
.pagination a,
.pagination span {
}
.pagination a:hover {
}
.pagination .current {
}
/* スピーチが見つからない場合 */
.no-speeches {
    text-align: center;
    padding: var(--spacing-64) 0;
}
.no-speeches h3 {
    margin-bottom: var(--spacing-16);
    color: var(--text-primary);
}
/* レスポンシブ対応 */
@media (max-width: 768px) {
    .page-title {
        font-size: var(--font-size-title);
    }
    
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .grid-2 {
        grid-template-columns: 1fr;
    }
    
    .personas-avatars {
        justify-content: center;
    }
}
.hero-section h1 {
    font-size: var(--font-size-hero);
    font-weight: 700;
    margin-bottom: 0;
    color: var(--text-primary);
}
/* グリッドシステム */
.grid {
    display: grid;
    gap: var(--spacing-24);
}
.grid-1 { grid-template-columns: 1fr; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }


/* カード */
