:root{--ink:#101418;--rice:#f7f3ec;--vermillion:#c73e2e;--indigo:#2c3e50;--stone:#8a8f94;--line:#ddd6c8}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--rice);color:var(--ink);font-family:'Inter',sans-serif;font-weight:300;line-height:1.8}
header{display:flex;justify-content:space-between;align-items:center;padding:28px 6vw;border-bottom:1px solid var(--line)}
.brand{font-family:'Shippori Mincho',serif;font-size:1.35rem;letter-spacing:.12em}
.brand span{color:var(--vermillion)}
nav a{color:var(--indigo);text-decoration:none;margin-left:30px;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase}
nav a:hover{color:var(--vermillion)}
.hero{position:relative;padding:110px 6vw 90px;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 64px;gap:20px}
.vtext{writing-mode:vertical-rl;font-family:'Shippori Mincho',serif;font-size:2rem;letter-spacing:.5em;color:var(--indigo);opacity:.85;justify-self:end;padding-top:8px}
.enso{width:120px;height:120px;margin-bottom:34px}
.kicker{font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--vermillion);margin-bottom:22px}
.hero h1{font-family:'Shippori Mincho',serif;font-weight:500;font-size:3.6rem;line-height:1.15;max-width:620px}
.hero p{margin-top:26px;max-width:480px;color:#4a5058;font-size:1.02rem}
.btn{display:inline-block;margin-top:34px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;padding:14px 28px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}
.btn:hover{background:var(--ink);color:var(--rice)}
.menu{padding:80px 6vw;max-width:860px;margin:0 auto}
.menu h2,.story h2,.reviews h2,.visit h2{font-family:'Shippori Mincho',serif;font-weight:500}
.menu h2{font-size:2rem;text-align:center;margin-bottom:6px}
.menu .sub{text-align:center;color:var(--stone);font-size:.92rem;margin-bottom:54px}
.group{margin-bottom:48px}
.group h3{font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:var(--vermillion);margin-bottom:18px;display:flex;align-items:center;gap:16px}
.group h3::after{content:"";flex:1;height:1px;background:var(--line)}
.row{display:flex;align-items:baseline;gap:10px;padding:11px 0}
.row .name{font-family:'Shippori Mincho',serif;font-size:1.12rem;white-space:nowrap}
.row .desc{color:var(--stone);font-size:.88rem}
.row .dots{flex:1;border-bottom:1px dotted #b9b0a0;transform:translateY(-4px);min-width:24px}
.row .price{font-family:'Shippori Mincho',serif;white-space:nowrap}
.note{border-left:2px solid var(--vermillion);padding:6px 0 6px 20px;color:#4a5058;font-size:.95rem;max-width:620px;margin:10px auto 0}
.story{padding:90px 6vw;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.story-inner{max-width:680px;margin:0 auto}
.story h2{font-size:1.9rem;margin-bottom:20px}
.story p{color:#4a5058;margin-top:14px}
.story p.lead{font-size:1.12rem;color:var(--ink)}
.reviews{padding:80px 6vw;max-width:1000px;margin:0 auto}
.reviews h2{text-align:center;font-size:1.8rem;margin-bottom:42px}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.card{padding-top:20px;border-top:1px solid var(--ink)}
.stars{color:var(--vermillion);letter-spacing:.3em;font-size:.9rem;margin-bottom:12px}
.card p{font-size:.96rem;color:#333a42;font-family:'Shippori Mincho',serif;line-height:1.75}
.card cite{display:block;margin-top:14px;font-style:normal;font-family:'Inter',sans-serif;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.visit{padding:80px 6vw;background:var(--ink);color:var(--rice)}
.visit h2{text-align:center;font-size:1.8rem;margin-bottom:36px}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:900px;margin:0 auto;text-align:center}
.vgrid h4{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:#c9b99a;margin-bottom:12px;font-weight:500}
.vgrid p{color:#d6d2c9;font-size:.97rem}
footer{padding:26px 6vw;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.78rem;letter-spacing:.1em;color:var(--stone)}
@media(max-width:820px){.hero{grid-template-columns:1fr;padding:64px 6vw 56px}.vtext{display:none}.hero h1{font-size:2.5rem}.rgrid,.vgrid{grid-template-columns:1fr}nav{display:none}.row{flex-wrap:wrap}.row .desc{width:100%;order:3}}
