*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f7f3eb;--ink:#2c2416;--accent:#4a6741;--cream:#ebe4d4;
  --side:220px;--font-serif:'Noto Serif JP',serif;--font-sans:'Zen Kaku Gothic New',sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);display:flex;min-height:100vh;line-height:1.7}
img{max-width:100%;height:auto;display:block;object-fit:cover}
a{color:var(--accent);text-decoration:none}
h1,h2,h3{font-family:var(--font-serif);font-weight:600}

.side-nav{
  position:fixed;left:0;top:0;width:var(--side);height:100vh;
  background:var(--ink);color:var(--cream);padding:2rem 1.25rem;
  display:flex;flex-direction:column;gap:2rem;z-index:100;
}
.logo{font-family:var(--font-serif);font-size:1.4rem;color:var(--cream);text-decoration:none}
.logo span{color:#c9a86c}
.side-nav nav{display:flex;flex-direction:column;gap:.75rem}
.side-nav nav a{color:rgba(247,243,235,.85);font-size:.9rem;transition:color .2s}
.side-nav nav a:hover{color:#fff}
.nav-toggle{display:none;background:none;border:none;color:var(--cream);font-size:1.5rem;cursor:pointer}

.content-wrap{margin-left:var(--side);flex:1;padding:1.5rem 2rem 3rem;max-width:1100px}

.hero-bento{
  display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:auto auto;
  gap:12px;min-height:420px;margin-bottom:3rem;
}
.bento-cell{border-radius:4px;overflow:hidden}
.bento-title{
  grid-row:span 2;background:var(--cream);padding:2.5rem;
  display:flex;flex-direction:column;justify-content:center;clip-path:polygon(0 0,100% 0,92% 100%,0 100%);
}
.eyebrow{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.bento-title h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.35;margin-bottom:1.5rem}
.bento-img img{width:100%;height:100%;min-height:180px}
.bento-stat{background:var(--accent);color:#fff;padding:1.5rem;display:flex;flex-direction:column;justify-content:center}
.stat-num{font-family:var(--font-serif);font-size:2rem}
.stat-label{font-size:.85rem;opacity:.9}

.btn-primary,.btn-cart{
  display:inline-block;background:var(--accent);color:#fff;border:none;
  padding:.75rem 1.5rem;border-radius:2px;cursor:pointer;font-size:.95rem;
  transition:transform .2s,background .2s;
}
.btn-primary:hover,.btn-cart:hover{background:#3d5536;transform:translateY(-1px)}
.btn-cart{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:.5rem 1rem;font-size:.85rem}
.btn-cart:hover{background:var(--accent);color:#fff}

.section{margin-bottom:3.5rem}
.section h2{font-size:1.6rem;margin-bottom:1.5rem;border-left:4px solid var(--accent);padding-left:.75rem}

.product-bento{
  display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;gap:14px;
}
.product-card{background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 2px 12px rgba(44,36,22,.06)}
.product-card img{width:100%;aspect-ratio:4/3}
.product-card.large{grid-column:span 2;grid-row:span 2}
.product-card.wide{grid-column:span 2}
.card-body{padding:1rem}
.card-body h3{font-size:1rem;margin-bottom:.35rem}
.price{font-weight:600;color:var(--accent)}
.price small{font-weight:400;font-size:.75rem;color:#666;display:block}

.story-split{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.story-text h2{font-size:1.5rem;margin-bottom:1rem;line-height:1.4}
.trust-list{list-style:none;margin-top:1.25rem}
.trust-list li{margin-bottom:.5rem;font-size:.95rem}
.story-visual{position:relative}
.story-visual > img:first-child{border-radius:4px;width:100%}
.float-img{position:absolute;bottom:-20px;right:-10px;width:45%;border:4px solid var(--bg);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.12)}

.review-rail{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory}
.review-rail blockquote{
  flex:0 0 min(280px,85vw);background:var(--cream);padding:1.25rem;border-radius:4px;scroll-snap-align:start;
}
.review-rail cite{display:block;margin-top:.75rem;font-size:.85rem;color:#666;font-style:normal}

.legal-footer{background:var(--ink);color:var(--cream);margin:0 -2rem -3rem;padding:2.5rem 2rem;border-radius:8px 0 0 0}
.legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}
.legal-footer h3,.legal-footer h4{font-family:var(--font-serif);margin-bottom:1rem;color:#c9a86c}
.legal-footer dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;font-size:.88rem}
.legal-footer dt{opacity:.7}
.legal-footer a{color:#c9a86c}
.contact-form label{display:block;margin-bottom:.75rem;font-size:.9rem}
.contact-form input,.contact-form textarea{
  width:100%;margin-top:.25rem;padding:.6rem;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;border-radius:2px;
}
.legal-links{display:flex;gap:1.5rem;margin-bottom:1.5rem}
.policy-block{margin-bottom:1.5rem;font-size:.85rem;opacity:.9;max-width:720px}
.copyright{font-size:.8rem;opacity:.6;margin-top:1rem}

.cart-toast{
  position:fixed;bottom:1.5rem;right:1.5rem;background:var(--ink);color:#fff;
  padding:1rem 1.5rem;border-radius:4px;transform:translateY(120%);transition:transform .3s;z-index:200;
}
.cart-toast.show{transform:translateY(0)}

@media(max-width:900px){
  .side-nav{width:100%;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:1rem}
  .side-nav nav{display:none;width:100%;flex-direction:column;padding-top:.5rem}
  .side-nav nav.open{display:flex}
  .nav-toggle{display:block;margin-left:auto}
  .content-wrap{margin-left:0;padding:1rem}
  .hero-bento{grid-template-columns:1fr 1fr}
  .bento-title{grid-column:span 2;clip-path:none}
  .product-bento{grid-template-columns:1fr 1fr}
  .product-card.large,.product-card.wide{grid-column:span 2}
  .story-split{grid-template-columns:1fr}
  .legal-grid{grid-template-columns:1fr}
  .legal-footer{margin:0 -1rem -2rem}
}
@media(max-width:520px){
  .hero-bento{grid-template-columns:1fr}
  .product-bento{grid-template-columns:1fr}
}
