:root{
  --bg:#dcd4c4;
  --bg-panel:#d0c6b3;
  --bg-dark:#726d62;
  --ink:#362c22;
  --ink-soft:#6b5d4a;
  --line:#a8977c;
  --card-bg:#e6dfd1;
  --white:#faf7f0;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  background:
    radial-gradient(ellipse 700px 600px at 8% 5%, #d9d3c6 0%, transparent 55%),
    radial-gradient(ellipse 750px 700px at 96% 4%, #a5a08e 0%, transparent 78%),
    radial-gradient(ellipse 900px 800px at 95% 55%, #b0ac9d 0%, transparent 72%),
    #c5bfb2;
  color:var(--ink);
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
  line-height:1.7;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.en{font-family:"Playfair Display","Times New Roman",serif;}

/* ---------- header ---------- */
header{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 5%;
  border-bottom:1px solid var(--line);
}
.nav-left{display:flex;gap:28px;font-size:13px;letter-spacing:.12em;}
.nav-left a{opacity:.85;}
.nav-left a.current{opacity:1;border-bottom:1px solid var(--ink);padding-bottom:2px;}
.brand{text-align:center;}
.brand .logo{font-size:30px;letter-spacing:.08em;font-weight:500;}
.brand .tagline{font-size:11px;letter-spacing:.2em;color:var(--ink-soft);}
.nav-right{display:flex;align-items:center;gap:18px;}
.nav-right a{color:var(--ink);display:flex;}
.menu-btn{display:none;background:none;border:none;font-size:22px;color:var(--ink);cursor:pointer;}

/* ---------- hero (top page) ---------- */
.hero{
  position:relative;
  display:flex;align-items:center;gap:6%;
  padding:70px 5% 50px;
  overflow:hidden;
}
.hero-text{flex:1;min-width:260px;}
.hero-text .kicker{font-size:44px;line-height:1.1;letter-spacing:.02em;}
.hero-text .lead{margin-top:22px;font-size:15px;}
.hero-text .lead + .lead{margin-top:8px;color:var(--ink-soft);}
.shop-btn{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:32px;padding:14px 26px;
  border:1px solid var(--ink);
  font-size:13px;letter-spacing:.1em;
  background:none;cursor:pointer;color:var(--ink);
  font-family:"Playfair Display","Times New Roman",serif;
}
.shop-btn[disabled],.shop-btn.disabled{opacity:.45;cursor:not-allowed;}
.hero-image{flex:1;min-width:260px;position:relative;}
.hero-image .arch{
  width:100%;aspect-ratio:4/5;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.hero-image .arch img{width:100%;height:100%;object-fit:contain;}

.motif{position:absolute;opacity:.9;pointer-events:none;}
.motif svg{display:block;}
.motif img{display:block;width:100%;height:auto;filter:sepia(.35) saturate(.7);}
.m-bird1{top:5%;left:1%;width:100px;}
.m-bird2{bottom:3%;right:2%;width:85px;transform:scaleX(-1);}
.m-cat1{top:12%;right:1%;width:95px;}
.m-cat2{bottom:9%;right:13%;width:80px;}
.m-flower1{top:78%;left:2%;width:95px;}

/* ---------- page header (interior pages) ---------- */
.page-hero{
  position:relative;text-align:center;
  padding:64px 5% 40px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.page-hero h1{font-size:36px;letter-spacing:.06em;}
.page-hero p{margin-top:14px;font-size:13px;color:var(--ink-soft);letter-spacing:.04em;}
.breadcrumb{font-size:11px;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:16px;}
.breadcrumb a{opacity:.8;}

/* ---------- feature grid ---------- */
.features{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  padding:0 5% 60px;
}
.feature-card{
  position:relative;aspect-ratio:3/4;
  background:#8a7c66;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.feature-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8;}
.feature-card .label{
  position:relative;z-index:1;color:var(--white);
  padding:22px;width:100%;
  background:linear-gradient(to top, rgba(30,24,17,.55), transparent 70%);
}
.feature-card .label .en{font-size:20px;letter-spacing:.04em;}
.feature-card .label .jp{font-size:12px;letter-spacing:.1em;margin-top:4px;opacity:.9;}
.feature-card .label .arrow{margin-top:10px;font-size:13px;}

/* ---------- generic section ---------- */
.section{padding:0 5% 70px;}
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:28px;border-bottom:1px solid var(--line);padding-bottom:14px;
}
.section-head h2{font-size:22px;letter-spacing:.06em;}
.section-head .viewall{font-size:12px;letter-spacing:.08em;color:var(--ink-soft);}

/* ---------- product grid / cards ---------- */
.products{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.product{text-align:center;}
.product a.thumb-link{display:block;}
.product .thumb{
  aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;
  padding:18px;
}
.product .thumb img{max-height:100%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(45,38,28,.18));}
.product .name-en{margin-top:14px;font-size:14px;letter-spacing:.04em;}
.product .name-en a{border-bottom:1px solid transparent;}
.product .name-en a:hover{border-bottom-color:var(--ink);}
.product .name-jp{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.product .price{margin-top:8px;font-size:14px;}
.product .price .tax{font-size:10px;color:var(--ink-soft);}

/* ---------- product detail ---------- */
.product-detail{
  display:flex;gap:6%;padding:20px 5% 80px;flex-wrap:wrap;
}
.product-detail .pd-image{
  flex:1;min-width:280px;
  background:var(--card-bg);
  aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;padding:40px;
}
.product-detail .pd-image img{max-height:100%;object-fit:contain;}
.product-detail .pd-info{flex:1;min-width:280px;padding-top:10px;}
.product-detail .pd-info .name-en{font-size:30px;letter-spacing:.04em;}
.product-detail .pd-info .name-jp{font-size:14px;color:var(--ink-soft);margin-top:6px;}
.product-detail .pd-info .price{margin-top:18px;font-size:20px;}
.product-detail .pd-info .price .tax{font-size:11px;color:var(--ink-soft);margin-left:4px;}
.product-detail .pd-info .desc{margin-top:26px;font-size:14px;line-height:2;color:var(--ink);}
.product-detail .pd-info .spec{margin-top:28px;border-top:1px dashed var(--line);padding-top:18px;font-size:13px;}
.product-detail .pd-info .spec dl{display:grid;grid-template-columns:100px 1fr;row-gap:10px;}
.product-detail .pd-info .spec dt{color:var(--ink-soft);}
.product-detail .pd-info .note{margin-top:22px;font-size:11px;color:var(--ink-soft);letter-spacing:.04em;}
.related-heading{padding:0 5%;margin-bottom:24px;font-size:16px;letter-spacing:.06em;border-top:1px solid var(--line);padding-top:40px;margin-left:5%;margin-right:5%;}

/* ---------- news ---------- */
.news{display:flex;gap:36px;flex-wrap:wrap;}
.news-photo{flex:1;min-width:240px;aspect-ratio:16/10;background:#8a7c66;overflow:hidden;}
.news-photo img{width:100%;height:100%;object-fit:cover;}
.news-list{flex:1;min-width:240px;display:flex;flex-direction:column;gap:14px;}
.news-item{display:flex;gap:18px;font-size:13px;border-bottom:1px dashed var(--line);padding-bottom:14px;}
.news-item .date{color:var(--ink-soft);white-space:nowrap;}
.news-more{margin-top:6px;font-size:12px;letter-spacing:.08em;}

/* ---------- prose (about / guide) ---------- */
.prose{max-width:720px;margin:0 auto;padding:10px 5% 80px;font-size:15px;}
.prose h2{font-size:22px;letter-spacing:.05em;margin:44px 0 18px;}
.prose h2:first-child{margin-top:0;}
.prose p{margin-bottom:18px;color:var(--ink);}
.prose p.lead{font-size:17px;line-height:2;color:var(--ink);}
.prose .quote{
  margin:36px 0;padding:26px 30px;border-left:2px solid var(--ink);
  font-size:16px;letter-spacing:.02em;background:var(--card-bg);
}
.prose ul.guide-list{list-style:none;margin:20px 0 30px;}
.prose ul.guide-list li{
  padding:18px 0;border-bottom:1px dashed var(--line);
}
.prose ul.guide-list li .g-title{font-size:15px;letter-spacing:.03em;margin-bottom:8px;}
.prose ul.guide-list li .g-title .en{font-size:12px;color:var(--ink-soft);margin-left:8px;}
.prose .about-photo{
  width:100%;aspect-ratio:16/9;background:var(--card-bg);overflow:hidden;margin:30px 0;
}
.prose .about-photo img{width:100%;height:100%;object-fit:cover;}

/* ---------- contact form ---------- */
.contact-wrap{max-width:560px;margin:0 auto;padding:10px 5% 90px;}
.contact-wrap p.intro{font-size:14px;color:var(--ink-soft);margin-bottom:34px;line-height:1.9;}
.form-row{margin-bottom:22px;}
.form-row label{display:block;font-size:12px;letter-spacing:.08em;margin-bottom:8px;color:var(--ink-soft);}
.form-row label .req{color:#a8543f;margin-left:4px;}
.form-row input,.form-row textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);
  background:var(--white);color:var(--ink);
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:14px;
}
.form-row textarea{min-height:140px;resize:vertical;}
.form-submit{
  margin-top:10px;width:100%;padding:15px;border:1px solid var(--ink);
  background:var(--ink);color:var(--white);
  font-size:13px;letter-spacing:.12em;cursor:pointer;
  font-family:"Playfair Display","Times New Roman",serif;
}
.form-note{margin-top:14px;font-size:11px;color:var(--ink-soft);text-align:center;}

/* ---------- footer ---------- */
footer{
  background:var(--bg-dark) url("../images/footer-texture.png") center center/cover no-repeat;
  color:var(--white);
  text-align:center;padding:56px 5% 30px;position:relative;
}
footer .brand-mark{font-size:24px;letter-spacing:.08em;}
footer .brand-sub{font-size:10px;letter-spacing:.2em;opacity:.7;margin-top:4px;}
footer .icons{display:flex;justify-content:center;gap:18px;margin:22px 0;font-size:15px;}
footer nav{display:flex;justify-content:center;gap:22px;font-size:12px;letter-spacing:.06em;flex-wrap:wrap;margin-bottom:20px;}
footer .copyright{font-size:10px;opacity:.6;}
.f-motif{position:absolute;opacity:.6;}
.f-bird{bottom:14px;left:4%;width:40px;}

@media (max-width:860px){
  header{padding:16px 4%;gap:6px;}
  .nav-left{display:none;}
  .menu-btn{display:block;}
  .nav-right{gap:12px;}
  .nav-right a[aria-label="search"],
  .nav-right a[aria-label="account"]{display:none;}
  .nav-right svg{width:26px;height:26px;}
  .brand .logo{font-size:22px;}
  .brand .tagline{font-size:9px;letter-spacing:.15em;}
  .hero{flex-direction:column;padding-top:40px;}
  .hero-text .kicker{font-size:32px;}
  .hero-text .lead{font-size:14px;}
  .features{grid-template-columns:1fr;}
  .products{grid-template-columns:repeat(2,1fr);}
  .motif{display:none;}
  .product-detail{flex-direction:column;}
  .page-hero h1{font-size:28px;}
}
