/* 商品一覧コンテナ */ .product-list-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* 商品一覧セクション */ .product-list-section { padding: 60px 0; background: #f8f8f8; }

.product-list__title { text-align: center; margin-bottom: 40px; font-size: 32px; font-weight: bold; }

.product-list__icon { width: 40px; height: 40px; vertical-align: middle; margin-right: 8px; }

.product-list__subtitle { font-size: 18px; color: #666; margin-right: 8px; }

.product-list__hd { color: #333; }

/* 商品グリッド (top.cssと同じスタイル) */ .items { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-bottom: 40px; }

/* 商品カード */ .product-item { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; text-decoration: none; color: inherit; display: block; transition: transform 0.2s, box-shadow 0.2s; position: relative; }

.product-item:hover { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); }

/* メーカーバッジ */ .product-badge { position: absolute; top: 12px; left: 12px; background: #fff; padding: 4px 8px; border-radius: 4px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); z-index: 1; }

.product-badge__image { max-width: 60px; height: auto; }

/* 商品画像 */ .product-image { width: 100%; height: 280px; object-fit: cover; display: block; }

/* 商品名 */ .product-name { padding: 16px; font-size: 14px; font-weight: 500; line-height: 1.4; min-height: 48px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* 価格コンテナ */ .product-price-container { padding: 0 16px 16px; }

.product-note { font-size: 12px; color: #666; margin-bottom: 4px; }

.product-price { font-size: 20px; font-weight: bold; color: #d32f2f; }

.product-price__number { font-size: 24px; }

/* ============================== ページネーション ============================== */ .pagination { display: flex; justify-content: center; align-items: center; gap: 20px; margin: 40px 0 0; padding: 20px; background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); }

.pagination .control { display: flex; align-items: center; gap: 12px; }

/* 前へ/次へボタン */ .pagination .prev, .pagination .next { width: 44px; height: 44px; }

.pagination .prev a, .pagination .next a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: #f5f5f5; border-radius: 50%; transition: background-color 0.2s; text-decoration: none; font-size: 20px; color: #333; }

.pagination .prev a::before { content: '‹'; }

.pagination .next a::before { content: '›'; }

.pagination .prev a:hover, .pagination .next a:hover { background-color: #e0e0e0; }

/* ページ番号リスト */ .pagination .control > div:nth-child(2) { display: flex; }

.pagination .control ul { display: flex; list-style: none; margin: 0; padding: 0; gap: 8px; }

.pagination .control li { margin: 0; }

.pagination .control li a, .pagination .control li span { display: block; min-width: 44px; height: 44px; padding: 0 8px; line-height: 44px; text-align: center; border-radius: 6px; transition: all 0.2s; font-size: 15px; }

.pagination .control li a { background: #f5f5f5; color: #333; text-decoration: none; font-weight: 500; }

.pagination .control li a:hover { background: #e0e0e0; transform: translateY(-2px); }

.pagination .control li.current span { background: #1976d2; color: #fff; font-weight: bold; box-shadow: 0 2px 6px rgba(25, 118, 210, 0.3); }

/* 省略記号 */ .pagination .control li.omission { display: flex; align-items: center; justify-content: center; min-width: 30px; padding: 0; }

.pagination .control li.omission img { width: auto; height: 16px; opacity: 0.5; display: block; }

/* ページ数表示 */ .pagination .page_num { font-size: 14px; color: #666; padding: 8px 16px; background: #f5f5f5; border-radius: 22px; min-width: 80px; text-align: center; white-space: nowrap; }

.pagination .page_num .num { font-weight: 600; color: #333; }

/* ============================== タブレット対応 (768px以下) ============================== */ @media (max-width: 768px) { .pagination { gap: 16px; padding: 16px 12px; flex-direction: column; }

.pagination .control {
    gap: 8px;
    width: 100%;
}

.pagination .prev,
.pagination .next {
    width: 40px;
    height: 40px;
}

.pagination .control ul {
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

.pagination .control li a,
.pagination .control li span {
    min-width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 14px;
    padding: 0 6px;
}

.pagination .control li.omission {
    min-width: 24px;
}

.pagination .control li.omission img {
    height: 14px;
}

.pagination .page_num {
    order: -1;
    font-size: 13px;
    padding: 6px 12px;
}
}

/* ============================== スマホ対応 (480px以下) ============================== */ @media (max-width: 480px) { .pagination { gap: 12px; padding: 12px 8px; }

.pagination .control {
    gap: 6px;
}

.pagination .prev,
.pagination .next {
    width: 36px;
    height: 36px;
}

.pagination .prev a::before,
.pagination .next a::before {
    font-size: 18px;
}

.pagination .control ul {
    gap: 4px;
}

.pagination .control li a,
.pagination .control li span {
    min-width: 36px;
    height: 36px;
    line-height: 36px;
    font-size: 13px;
    padding: 0 4px;
}

.pagination .control li.omission {
    min-width: 20px;
}

.pagination .control li.omission img {
    height: 12px;
}

.pagination .page_num {
    font-size: 12px;
    padding: 5px 10px;
    min-width: 70px;
}
}

/* ============================== 極小画面対応 (360px以下) ============================== */ @media (max-width: 360px) { .pagination { padding: 10px 6px; gap: 10px; }

.pagination .control {
    gap: 4px;
}

.pagination .prev,
.pagination .next {
    width: 32px;
    height: 32px;
}

.pagination .prev a::before,
.pagination .next a::before {
    font-size: 16px;
}

.pagination .control ul {
    gap: 3px;
}

.pagination .control li a,
.pagination .control li span {
    min-width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 12px;
    padding: 0 3px;
}

.pagination .control li.omission {
    min-width: 16px;
}

.pagination .control li.omission img {
    height: 10px;
}

.pagination .page_num {
    font-size: 11px;
    padding: 4px 8px;
    min-width: 65px;
}
}