:root {
  --primary: #f8bbd0;
  --primary-dark: #f48fb1;
  --bg: #fffaf7;
  --text: #4a3728;
  --muted: #8d7b6f;
  --card: #ffffff;
  --border: #f0e6df;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; background: var(--bg); color: var(--text); line-height: 1.7; }
a { color: var(--primary-dark); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.block { scroll-margin-top: 80px; max-width: 1100px; margin: 0 auto; padding: 2.5rem 1.5rem; }
.block h2 { font-size: 1.5rem; margin-bottom: 1.25rem; color: var(--primary-dark); border-bottom: 2px solid var(--primary); padding-bottom: 0.5rem; }
.topbar { background: var(--card); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
.topbar-inner { max-width: 1100px; margin: 0 auto; padding: 1rem 1.5rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.logo { font-size: 1.35rem; font-weight: 700; color: var(--primary-dark); }
.nav-main { display: flex; gap: 1.5rem; list-style: none; flex-wrap: wrap; }
.nav-main a { color: var(--text); font-size: 0.95rem; }
.nav-main a:hover { color: var(--primary-dark); }
.hero-slider { position: relative; max-width: 1100px; margin: 0 auto; padding: 2rem 1.5rem 0; }
.hero-slide { display: none; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 32px rgba(244,143,177,0.15); }
.hero-slide.active { display: block; }
.hero-slide img { width: 100%; height: 380px; object-fit: cover; }
.hero-caption { position: absolute; bottom: 2rem; left: 3rem; background: rgba(255,255,255,0.92); padding: 1.25rem 1.5rem; border-radius: 12px; max-width: 420px; }
.hero-dots { text-align: center; margin-top: 1rem; }
.hero-dots button { width: 10px; height: 10px; border-radius: 50%; border: none; background: var(--border); margin: 0 4px; cursor: pointer; }
.hero-dots button.active { background: var(--primary-dark); }
.product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.5rem; }
.product-card { background: var(--card); border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.product-card img { width: 100%; height: 220px; object-fit: cover; }
.product-card .info { padding: 1rem; }
.product-card h3 { font-size: 1rem; margin-bottom: 0.35rem; }
.product-card .price { color: var(--primary-dark); font-weight: 700; }
.detail-list { display: flex; flex-direction: column; gap: 2rem; }
.detail-item { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; }
@media (max-width: 768px) { .detail-item { grid-template-columns: 1fr; } }
.detail-item img { width: 100%; height: 280px; object-fit: cover; border-radius: 8px; }
.detail-item .price { font-size: 1.35rem; color: var(--primary-dark); font-weight: 700; margin: 0.5rem 0; }
.prose h1 { font-size: 1.75rem; margin-bottom: 1rem; color: var(--primary-dark); }
.prose h3 { font-size: 1.1rem; margin: 1.25rem 0 0.5rem; color: var(--primary-dark); }
.prose p, .prose li { color: var(--muted); margin-bottom: 0.75rem; }
.prose ul { padding-left: 1.25rem; }
.footer { background: var(--card); border-top: 1px solid var(--border); padding: 2rem 1.5rem; text-align: center; }
.footer .email { color: var(--muted); font-size: 0.9rem; margin-top: 0.75rem; }
