*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Hiragino Sans', 'Noto Sans JP', sans-serif; background: #f5f5f5; color: #333; line-height: 1.6; }
header { background: #232f3e; color: #fff; padding: 16px 24px; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
header h1 { font-size: 1.2rem; font-weight: 700; letter-spacing: .04em; }
header span { font-size: .8rem; color: #ff9900; margin-left: 8px; }
.container { max-width: 1100px; margin: 0 auto; padding: 24px 16px; }
.breadcrumb { font-size: .82rem; color: #888; margin-bottom: 16px; }
.breadcrumb a { color: #0066c0; text-decoration: none; }
.intro { background: #fff; border-radius: 12px; padding: 20px 24px; margin-bottom: 24px; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.intro h2 { font-size: 1.05rem; color: #232f3e; margin-bottom: 10px; }
.intro p { font-size: .88rem; color: #555; }
.section-title { font-size: 1.15rem; font-weight: 700; color: #232f3e; margin: 8px 0 16px; display: flex; align-items: center; gap: 8px; }
.section-title::before { content: ''; width: 5px; height: 22px; background: #ff9900; border-radius: 3px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.08); transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.card-img { width: 100%; height: 200px; object-fit: contain; background: #fafafa; padding: 12px; }
.card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.card-title { font-size: .9rem; font-weight: 600; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rating { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.stars { color: #ff9900; font-size: 1rem; letter-spacing: -1px; }
.rating-num { font-size: .85rem; font-weight: 700; color: #333; }
.review-count { font-size: .78rem; color: #888; }
.price { font-size: 1.3rem; font-weight: 700; color: #b12704; margin-bottom: 12px; }
.price small { font-size: .8rem; color: #888; font-weight: 400; }
.review-snippet { font-size: .8rem; color: #555; background: #f9f9f9; border-left: 3px solid #ff9900; padding: 8px 10px; border-radius: 0 6px 6px 0; margin-bottom: 14px; flex: 1; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.btn-amazon { display: block; text-align: center; background: #ff9900; color: #111; font-weight: 700; font-size: .9rem; padding: 12px; border-radius: 8px; text-decoration: none; transition: background .2s; margin-top: auto; }
.btn-amazon:hover { background: #e47f00; }
footer { text-align: center; padding: 32px 16px; font-size: .78rem; color: #999; margin-top: 40px; }
footer a { color: #666; }
@media (max-width: 600px) { .grid { grid-template-columns: 1fr; } }
