:root{
  --wood-darkest:#0a0603; --wood-dark:#130c06; --wood-mid:#1d130a; --wood-plank:#241811;
  --gold:#d9a961; --gold-bright:#f6c977; --gold-deep:#9d712d; --gold-soft:#c49a5a;
  --gold-dim:rgba(217,169,97,.6); --gold-line:rgba(217,169,97,.32);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Cormorant Garamond',Georgia,serif; color:var(--gold);
  background-color:#0d0805;
  background-image:
    linear-gradient(180deg, rgba(10,6,3,.08), rgba(6,4,2,.16)),
    url('wood.jpg');
  background-size:cover, cover;
  background-position:center center;
  background-repeat:no-repeat;
  background-attachment:fixed; line-height:1.6; -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
.jp{font-family:'Shippori Mincho',serif;}
main{flex:1;position:relative;z-index:1;}

.gold-text{
  background:linear-gradient(180deg,#fbe0a2 0%,#f6c977 30%,#d9a961 55%,#9d712d 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- Fixed art-deco frame ---------- */
.frame{position:fixed;inset:16px;pointer-events:none;z-index:40;border:1px solid var(--gold-line);}
.frame::before,.frame::after{content:"";position:absolute;background:var(--gold-line);}
.frame-corner{position:fixed;width:46px;height:46px;z-index:41;pointer-events:none;}
.frame-corner::before,.frame-corner::after{content:"";position:absolute;background:var(--gold);opacity:.85;}
.frame-corner::before{width:100%;height:2px;top:0;left:0;}
.frame-corner::after{width:2px;height:100%;top:0;left:0;}
.frame-corner span{position:absolute;width:9px;height:9px;border:1.5px solid var(--gold);}
.fc-tl{top:16px;left:16px;} .fc-tl span{top:12px;left:12px;}
.fc-tr{top:16px;right:16px;transform:scaleX(-1);} .fc-tr span{top:12px;left:12px;}
.fc-bl{bottom:16px;left:16px;transform:scaleY(-1);} .fc-bl span{top:12px;left:12px;}
.fc-br{bottom:16px;right:16px;transform:scale(-1,-1);} .fc-br span{top:12px;left:12px;}
@media(max-width:640px){.frame{inset:10px;}.frame-corner{width:34px;height:34px;}
  .fc-tl,.fc-tr{top:10px;} .fc-bl,.fc-br{bottom:10px;} .fc-tl,.fc-bl{left:10px;} .fc-tr,.fc-br{right:10px;}}

/* ---------- Navigation ---------- */
header.nav{
  position:sticky;top:0;z-index:50; display:flex;align-items:center;justify-content:space-between;
  padding:14px 7vw; background:linear-gradient(180deg, rgba(8,5,2,.97), rgba(8,5,2,.82));
  backdrop-filter:blur(6px); border-bottom:1px solid var(--gold-line);
}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;}
.brand .mark{width:52px;height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.brand .mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));}
.brand .txt{font-family:'Shippori Mincho',serif;font-weight:600;letter-spacing:.2em;font-size:1.02rem;text-transform:uppercase;line-height:1.2;}
.brand .txt em{font-size:.66rem;display:block;letter-spacing:.34em;font-style:normal;color:var(--gold-soft);-webkit-text-fill-color:var(--gold-soft);}

.menu{display:flex;align-items:center;gap:2rem;list-style:none;}
.menu a{color:var(--gold);text-decoration:none;font-size:1.05rem;letter-spacing:.08em;position:relative;transition:color .25s;white-space:nowrap;}
.menu a:hover,.menu a.active{color:var(--gold-bright);}
.menu a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold-bright);transition:width .3s;}
.menu a:hover::after,.menu a.active::after{width:100%;}
.menu-toggle{display:none;background:none;border:1px solid var(--gold-line);border-radius:3px;color:var(--gold-bright);font-size:1.4rem;line-height:1;padding:.25rem .55rem;cursor:pointer;}
@media(max-width:820px){
  .menu-toggle{display:block;}
  .menu{position:absolute;top:100%;right:7vw;flex-direction:column;align-items:flex-start;gap:1.1rem;
    background:rgba(10,6,3,.98);border:1px solid var(--gold-line);border-radius:6px;
    padding:1.4rem 1.8rem;min-width:230px;display:none;box-shadow:0 12px 30px rgba(0,0,0,.6);}
  .menu.open{display:flex;}
}

/* ---------- Ornament divider ---------- */
.divider{display:flex;align-items:center;justify-content:center;gap:1.1rem;color:var(--gold-soft);margin:2.4rem auto;max-width:340px;}
.divider::before,.divider::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent);}
.divider .knot{width:22px;height:22px;flex-shrink:0;}
.divider .knot svg{width:100%;height:100%;display:block;}

/* ---------- Generic page header ---------- */
.page-head{text-align:center;padding:9vh 6vw 2vh;}
.page-head .label{font-family:'Shippori Mincho',serif;letter-spacing:.4em;text-transform:uppercase;font-size:.82rem;color:var(--gold-soft);margin-bottom:.8rem;}
.page-head h1{font-family:'Shippori Mincho',serif;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:600;letter-spacing:.06em;}
section{padding:4vh 6vw 8vh;position:relative;}

/* ---------- Hero (home) ---------- */
.hero{min-height:86vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9vh 6vw;position:relative;}
.hero .emblem{width:min(300px,64vw);margin-bottom:1.6rem;filter:drop-shadow(0 4px 22px rgba(0,0,0,.6));}
.lockup-name{font-family:'Shippori Mincho',serif;font-weight:600;font-size:clamp(2.6rem,7vw,4.6rem);letter-spacing:.28em;margin-left:.28em;line-height:1;}
.lockup-sub{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;color:var(--gold);font-size:clamp(1.1rem,2.6vw,1.6rem);letter-spacing:.34em;text-transform:uppercase;}
.lockup-sub::before,.lockup-sub::after{content:"";width:34px;height:1px;background:var(--gold-soft);}
.lockup-tag{margin-top:1rem;color:var(--gold-soft);font-size:clamp(.85rem,2vw,1.05rem);letter-spacing:.4em;text-transform:uppercase;}
.hero .tagline{font-size:clamp(1.15rem,2.4vw,1.55rem);font-style:italic;color:var(--gold);max-width:640px;margin-top:2rem;letter-spacing:.02em;}
.hero-actions{margin-top:2.8rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}
.btn{display:inline-block;padding:.85rem 2.2rem;border:1px solid var(--gold-soft);border-radius:2px;color:var(--gold-bright);text-decoration:none;letter-spacing:.18em;text-transform:uppercase;font-size:.82rem;transition:all .3s;background:rgba(10,6,3,.3);}
.btn:hover{background:var(--gold-bright);color:var(--wood-darkest);border-color:var(--gold-bright);}
.btn.solid{background:linear-gradient(180deg,#f6c977,#c49a5a);color:#1a1006;border-color:var(--gold-soft);}
.btn.solid:hover{background:linear-gradient(180deg,#fbe0a2,#d9a961);}

/* ---------- Mission / About ---------- */
.mission{max-width:860px;margin:0 auto;text-align:center;background:linear-gradient(180deg, rgba(20,12,6,.6), rgba(10,6,3,.35));border:1px solid var(--gold-line);padding:4rem 3rem;border-radius:3px;box-shadow:0 10px 40px rgba(0,0,0,.4);}
.mission .lead{font-size:clamp(1.5rem,3vw,2.1rem);font-style:italic;line-height:1.5;margin-bottom:1.6rem;}
.mission p{font-size:1.2rem;color:var(--gold);line-height:1.8;}
.prose{max-width:760px;margin:0 auto;text-align:center;}
.prose p{font-size:1.2rem;line-height:1.9;color:var(--gold);margin-bottom:1.6rem;}

/* ---------- Products ---------- */
.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;max-width:1150px;margin:0 auto;}
.product-card{background:linear-gradient(180deg, rgba(24,15,8,.65), rgba(10,6,3,.4));border:1px solid var(--gold-line);border-radius:4px;overflow:hidden;transition:transform .35s, box-shadow .35s, border-color .35s;display:flex;flex-direction:column;}
.product-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(0,0,0,.55);border-color:var(--gold-soft);}
.product-img{aspect-ratio:4/5;width:100%;display:flex;align-items:center;justify-content:center;background:url('wood_beige.jpg') center/cover;padding:16px;border-bottom:1px solid var(--gold-line);overflow:hidden;}
.product-img img{width:100%;height:100%;object-fit:contain;background:#fff;box-shadow:0 0 0 1px rgba(217,169,97,.55), 0 5px 16px rgba(0,0,0,.4);}
.product-info{padding:1.6rem 1.6rem 2rem;text-align:center;}
.product-info h3{font-family:'Shippori Mincho',serif;font-size:1.5rem;margin-bottom:.5rem;font-weight:500;}
.product-info .cat{font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.9rem;}
.product-info p{font-size:1.05rem;color:var(--gold);line-height:1.6;}

/* ---------- Product detail rows ---------- */
.product-rows{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:3.5rem;}
.product-row{display:flex;align-items:center;gap:3.5rem;}
.product-row:nth-of-type(even){flex-direction:row-reverse;}
.product-photo{flex:0 0 320px;max-width:320px;}
.frame-img{aspect-ratio:4/5;width:100%;display:flex;align-items:center;justify-content:center;background:url('wood_beige.jpg') center/cover;padding:16px;border-radius:3px;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.5);}
.frame-img img{width:100%;height:100%;object-fit:contain;background:#fff;box-shadow:0 0 0 1px rgba(217,169,97,.55), 0 5px 16px rgba(0,0,0,.4);}
.product-detail{flex:1;min-width:0;}
.product-detail .cat{font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.6rem;}
.product-detail h3{font-family:'Shippori Mincho',serif;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;margin-bottom:.9rem;letter-spacing:.02em;}
.product-detail .tag{display:inline-block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright);border:1px solid var(--gold-line);border-radius:2px;padding:.32rem .9rem;margin-bottom:1.2rem;}
.product-detail .desc-en{font-size:1.16rem;line-height:1.75;color:var(--gold);margin-bottom:1.2rem;}
.product-detail .desc-jp{font-family:'Shippori Mincho',serif;font-size:1rem;line-height:2;color:var(--gold-soft);}
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--gold-line);border:1px solid var(--gold-line);border-radius:2px;overflow:hidden;margin-top:1.8rem;}
.specs > div{background:rgba(12,7,3,.55);padding:.85rem 1.1rem;}
.specs .k{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.28rem;}
.specs .v{font-family:'Shippori Mincho',serif;font-size:1.05rem;color:var(--gold-bright);}
.row-sep{height:1px;max-width:1080px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--gold-line),transparent);}
@media(max-width:760px){
  .product-row,.product-row:nth-of-type(even){flex-direction:column;text-align:center;gap:1.6rem;}
  .product-photo{flex:0 0 auto;max-width:260px;width:100%;}
  .product-detail .tag{margin-left:auto;margin-right:auto;}
}

/* ---------- Contact ---------- */
.contact{max-width:720px;margin:0 auto;text-align:center;}
.contact p.intro{font-size:1.25rem;color:var(--gold);margin-bottom:2.5rem;line-height:1.7;}
.contact-links{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;}
.contact-links a{display:flex;align-items:center;gap:.9rem;padding:1.1rem 2rem;min-width:280px;justify-content:center;border:1px solid var(--gold-line);border-radius:3px;color:var(--gold-bright);text-decoration:none;font-size:1.15rem;letter-spacing:.04em;background:rgba(10,6,3,.35);transition:all .3s;}
.contact-links a:hover{background:var(--gold-bright);color:var(--wood-darkest);border-color:var(--gold-bright);}
.contact-links .ico{width:40px;height:40px;flex-shrink:0;border:1px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.contact-links svg{width:20px;height:20px;fill:currentColor;}

/* ---------- Footer ---------- */
footer{text-align:center;padding:3rem 6vw;border-top:1px solid var(--gold-line);background:rgba(6,4,2,.7);position:relative;z-index:1;}
footer .fmark{width:74px;margin:0 auto .8rem;}
footer .fmark img{width:100%;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));}
footer .jp{font-size:1.3rem;letter-spacing:.24em;}
footer .fmenu{display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap;margin:1rem 0 .4rem;}
footer .fmenu a{color:var(--gold-soft);text-decoration:none;font-size:.95rem;letter-spacing:.08em;transition:color .25s;}
footer .fmenu a:hover{color:var(--gold-bright);}
footer p{font-size:.9rem;color:var(--gold-dim);margin-top:.5rem;letter-spacing:.08em;}
