/* ==========================================
   1. 共通デザイン（アーカイブ・グリッド）
   ========================================== */
.zukan-archive-wrapper, .zukan-public-wrapper { padding: 20px 0; }
.zukan-grid, .zukan-public-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; }

/* カード本体 */
.zukan-card, .zukan-public-card { 
    background: #ffffff; border: 1px solid #e2e8f0; border-radius: 15px; 
    overflow: hidden; display: flex; flex-direction: column; 
    transition: 0.3s; text-decoration: none !important; box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}
.zukan-card:hover, .zukan-public-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); }

/* 画像・コンテンツ */
.zukan-card-image-wrap, .zukan-public-image-wrap { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #f1f5f9; }
.zukan-card-image, .zukan-public-image { width: 100%; height: 100%; object-fit: cover; }
.zukan-card-content, .zukan-public-content { padding: 20px; flex-grow: 1; display: flex; flex-direction: column; }
.zukan-card-title, .zukan-public-title { font-size: 1.25rem; font-weight: 800; color: #1e293b; margin-bottom: 15px; }

/* タグ（悩み・解決策） */
.zukan-card-tag, .zukan-public-tag { display: inline-flex; padding: 3px 12px; border-radius: 50px; font-size: 0.75rem; font-weight: 800; margin-bottom: 8px; align-self: flex-start; }
.zukan-tag-problem { background: #e0e7ff; color: #3730a3; }
.zukan-tag-solution { background: #ffedd5; color: #9a3412; }
.zukan-card-text, .zukan-public-text { font-size: 0.85rem; line-height: 1.6; color: #475569; margin-bottom: 15px; }

/* ボタン */
.zukan-card-btn, .zukan-public-btn {
    margin-top: auto; padding: 12px; background: #f8fafc; color: #64748b;
    text-align: center; border-radius: 10px; font-size: 0.8rem; font-weight: 700;
    border: 1px solid #e2e8f0; transition: 0.2s;
}
.zukan-card:hover .zukan-card-btn { background: #2563eb; color: #fff; border-color: #2563eb; }

