/* 共通スタイル（ベース） —— wood158 テーマ準拠 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif; color: #333; background: #fff; }
a { color: #1c67b8; text-decoration: none; }
img { max-width: 100%; }

/* ヘッダー */
#site-header { border-bottom: 1px solid #eee; }
.top-banner { max-width: 1100px; margin: 0 auto; padding: 10px 16px 0; }
.top-banner img { width: 100%; border-radius: 4px; display: block; }
.header-inner { display: flex; justify-content: space-between; align-items: center; max-width: 1100px; margin: 0 auto; padding: 12px 16px; }
.header-nav a { margin-left: 16px; }
.category-nav { display: flex; flex-wrap: wrap; gap: 4px 12px; list-style: none; max-width: 1100px; margin: 0 auto; padding: 8px 16px; font-size: 13px; }
.category-nav a { color: #555; }

/* 商品グリッド */
.product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; list-style: none; max-width: 1100px; margin: 0 auto; padding: 16px; }
.product-card { border: 1px solid #eee; border-radius: 4px; overflow: hidden; }
.product-card img { aspect-ratio: 1; object-fit: cover; }
.product-card .title { font-size: 13px; padding: 8px 8px 0; color: #333; }
.product-card .price { padding: 4px 8px 10px; }
.list-price { text-decoration: line-through; color: #999; font-size: 12px; margin-right: 6px; }
.sale-price { color: #c00; font-weight: bold; }

/* 商品詳細 */
.product-detail { max-width: 1100px; margin: 0 auto; padding: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.product-media .gallery-main img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid #eee; border-radius: 4px; }
.gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin-top: 10px; padding: 0; }
.gallery-thumbs .thumb { width: 64px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 4px; overflow: hidden; cursor: pointer; background: none; }
.gallery-thumbs .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-thumbs .thumb.active { border-color: #1c67b8; }
.product-desc { grid-column: 1 / -1; border-top: 1px solid #eee; padding-top: 16px; }
.product-desc .desc-body h3 { font-size: 15px; margin: 20px 0 8px; padding-left: 10px; border-left: 4px solid #1c67b8; }
.product-desc .desc-body p { font-size: 14px; line-height: 1.9; margin: 6px 0; }
.product-desc .desc-body ul { margin: 6px 0 6px 22px; }
.product-desc .desc-body li { font-size: 14px; line-height: 1.8; }
.btn-add-cart { background: #1c67b8; color: #fff; border: none; padding: 10px 28px; border-radius: 4px; cursor: pointer; }
.shipping-note { margin-top: 8px; font-size: 13px; color: #666; }

/* 会員ページ */
.auth-page { max-width: 900px; margin: 0 auto; padding: 24px 16px; display: grid; gap: 32px; }
.auth-page fieldset { border: 1px solid #ddd; padding: 12px; margin-top: 12px; }
.auth-page label { display: block; margin: 8px 0; font-size: 14px; }
.auth-page input, .auth-page select { padding: 6px; margin-left: 8px; }

/* フッター */
#site-footer { border-top: 1px solid #eee; margin-top: 40px; padding: 24px 16px; background: #fafafa; }
#site-footer .footer-info { max-width: 1100px; margin: 0 auto; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; max-width: 1100px; margin: 12px auto; }
.copyright { text-align: center; font-size: 12px; color: #999; margin-top: 16px; }

/* カート・レジ */
.cart-table { width: 100%; max-width: 900px; margin: 16px auto; border-collapse: collapse; }
.cart-table th, .cart-table td { border-bottom: 1px solid #eee; padding: 10px; font-size: 14px; text-align: left; }
.cart-table tfoot th { color: #c00; }
.btn-checkout, .btn-confirm, .btn-pay { display: inline-block; background: #1c67b8; color: #fff; padding: 10px 28px; border-radius: 4px; border: none; cursor: pointer; font-size: 15px; }
.cart-actions { text-align: center; margin: 16px 0; }
.checkout-page, .cart-page, .order-complete { max-width: 900px; margin: 0 auto; padding: 24px 16px; }
.payment-option { display: block; margin: 10px 0; font-size: 14px; }
.payment-option img { vertical-align: middle; height: 24px; margin: 0 6px; }
.checkout-page fieldset { border: 1px solid #ddd; padding: 12px; margin: 16px 0; }
.notice { background: #fff7e6; border: 1px solid #f0c36d; padding: 10px; margin: 12px 0; font-size: 14px; }

/* エラーページ */
.error-page { max-width: 700px; margin: 60px auto; text-align: center; }

@media (max-width: 640px) {
  .product-detail { grid-template-columns: 1fr; }
}
