/* ===== ARCHIVE PAGE STYLES ===== */ .archive-page { background: #f8f9fa; min-height: 100vh; } /* アーカイブヘッダー */ .archive-hero { background: linear-gradient(135deg, #005b9f 0%, #0080d4 100%); color: #fff; padding: 3rem 0; margin-top: 64px; position: relative; overflow: hidden; } .archive-hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 0%, transparent 50%); } .archive-title-section { position: relative; z-index: 1; } .archive-title { font-size: 2.5rem; color: #fff; margin-bottom: 1rem; text-align: center; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); } .archive-description { font-size: 1.1rem; text-align: center; max-width: 600px; margin: 0 auto 2rem; opacity: 0.9; line-height: 1.6; } .archive-count { text-align: center; margin-top: 1rem; } .post-count { background: rgba(255, 255, 255, 0.2); padding: 0.5rem 1rem; border-radius: 20px; font-size: 0.9rem; backdrop-filter: blur(10px); } /* アーカイブコンテンツ */ .archive-content { padding: 3rem 0; } .content-wrapper { display: grid; grid-template-columns: 1fr; gap: 3rem; } .archive-main { background: #fff; border-radius: 12px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); padding: 2rem; } /* フィルタ */ .archive-filters { margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 2px solid #f0f4f8; } .filter-buttons { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; } .filter-label { font-weight: 600; color: #333; } .filter-btn { padding: 0.5rem 1rem; border: 1px solid #ddd; border-radius: 20px; color: #666; text-decoration: none; font-size: 0.9rem; transition: all 0.3s ease; } .filter-btn:hover, .filter-btn.active { background: #005b9f; color: #fff; border-color: #005b9f; transform: translateY(-1px); } /* 投稿グリッド */ .posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); gap: 2rem; margin-bottom: 3rem; } .archive-post-card { background: #fff; border-radius: 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); overflow: hidden; transition: all 0.3s ease; border-top: 4px solid #f36500; } .archive-post-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); } .post-thumbnail { position: relative; height: 200px; overflow: hidden; } .post-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .archive-post-card:hover .post-thumbnail img { transform: scale(1.05); } .no-thumbnail { height: 100%; background: linear-gradient(135deg, #f0f4f8 0%, #e9ecef 100%); display: flex; align-items: center; justify-content: center; position: relative; } .no-thumbnail i { font-size: 3rem; color: #ccc; } .post-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 91, 159, 0.8); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; } .archive-post-card:hover .post-overlay { opacity: 1; } .post-overlay i { font-size: 2rem; color: #fff; animation: pulse 2s infinite; } .post-content { padding: 1.5rem; } .post-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; font-size: 0.85rem; color: #666; } .post-meta i { margin-right: 0.5rem; color: #f36500; } .category-link { color: #005b9f; text-decoration: none; font-weight: 600; transition: color 0.3s ease; } .category-link:hover { color: #f36500; } .post-title { font-size: 1.2rem; margin-bottom: 1rem; line-height: 1.4; } .post-title a { color: #005b9f; text-decoration: none; transition: color 0.3s ease; } .post-title a:hover { color: #f36500; } .post-excerpt { color: #666; line-height: 1.6; margin-bottom: 1rem; font-size: 0.95rem; } .post-tags { display: flex; gap: 0.5rem; margin-bottom: 1rem; flex-wrap: wrap; } .tag-link { background: #f0f4f8; color: #005b9f; padding: 0.25rem 0.75rem; border-radius: 12px; text-decoration: none; font-size: 0.8rem; transition: all 0.3s ease; } .tag-link:hover { background: #005b9f; color: #fff; transform: scale(1.05); } .post-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; border-top: 1px solid #f0f4f8; } .read-more { color: #005b9f; text-decoration: none; font-weight: 600; display: flex; align-items: center; gap: 0.5rem; transition: all 0.3s ease; } .read-more:hover { color: #f36500; transform: translateX(3px); } .comment-count { color: #666; font-size: 0.9rem; display: flex; align-items: center; } .comment-count i { margin-right: 0.5rem; } /* ページネーション */ .archive-pagination { text-align: center; margin-top: 3rem; } .archive-pagination .nav-links { display: inline-flex; gap: 0.5rem; list-style: none; } .archive-pagination a, .archive-pagination span { display: block; padding: 0.75rem 1rem; border: 1px solid #ddd; color: #005b9f; text-decoration: none; border-radius: 5px; transition: all 0.3s ease; font-weight: 600; } .archive-pagination a:hover, .archive-pagination .current { background: #005b9f; color: #fff; border-color: #005b9f; transform: translateY(-1px); } .archive-pagination .dots { padding: 0.75rem 0.5rem; color: #666; border: none; } /* 投稿なし */ .no-posts { text-align: center; padding: 4rem 2rem; } .no-posts-icon i { font-size: 4rem; color: #ddd; margin-bottom: 2rem; } .no-posts h2 { color: #005b9f; margin-bottom: 1rem; font-size: 1.8rem; } .no-posts p { color: #666; font-size: 1.1rem; margin-bottom: 2rem; } .no-posts-actions { display: flex; gap: 1rem; justify-content: center; margin-top: 2rem; flex-wrap: wrap; } /* サイドバー */ .archive-sidebar { background: #fff; border-radius: 12px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); padding: 2rem; height: fit-content; position: sticky; top: 100px; } /* レスポンシブ */ @media (min-width: 768px) { .content-wrapper { grid-template-columns: 2fr 1fr; } .posts-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); } .archive-title { font-size: 3rem; } } @media (max-width: 767px) { .posts-grid { grid-template-columns: 1fr; gap: 1.5rem; } .post-meta { flex-direction: column; gap: 0.5rem; align-items: flex-start; } .no-posts-actions { flex-direction: column; align-items: center; } .archive-title { font-size: 2rem; } .archive-main { padding: 1rem; } .filter-buttons { justify-content: center; } } @media (max-width: 480px) { .posts-grid { grid-template-columns: 1fr; gap: 1rem; } .archive-hero { padding: 2rem 0; } .archive-title { font-size: 1.8rem; } .post-content { padding: 1rem; } }