:root{--brown:#3d3535;--taupe:#6b5e5e;--taupe-soft:#8a7e7e;--caramel:#c4956a;--caramel-deep:#a87b52;--peach:#e8d5c0;--rose:#c99a86;--cream:#faf7f5;--cream-deep:#f3eeea;--surface:#fff;--surface-warm:#fdfaf7;--line:#e8e0db;--line-soft:#f0ebe7;--sage:#7ba88e;--terracotta:#be7c66;--terracotta-bg:#f7ede8;--serif:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--sans:"Zen Kaku Gothic New", -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--shadow-soft:0 6px 28px #3d353512;--shadow-card:0 2px 14px #3d35350d;font-family:var(--sans);color:var(--brown);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);min-height:100vh}button{cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit}input,textarea{font-family:inherit}.app{background:var(--cream);flex-direction:column;max-width:460px;min-height:100vh;margin:0 auto;display:flex;position:relative}.app-header{text-align:center;background:radial-gradient(120% 80% at 50% 0%, var(--surface-warm) 0%, var(--cream) 70%);border-bottom:1px solid var(--line-soft);padding:26px 24px 20px}.brandmark{font-family:var(--serif);letter-spacing:.32em;color:var(--brown);margin:0 0 0 .32em;font-size:23px;font-weight:600}.brandmark .dot{color:var(--caramel)}.brandtag{letter-spacing:.22em;color:var(--taupe-soft);margin-top:7px;font-size:11px}.brandrule{background:var(--caramel);opacity:.7;width:26px;height:1px;margin:13px auto 0}.content{flex:1;padding:22px 22px 120px}.steps{justify-content:center;align-items:center;gap:0;margin:4px 0 24px;display:flex}.steps .s{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex;position:relative}.steps .s .num{width:26px;height:26px;font-size:12px;font-family:var(--serif);background:var(--surface);color:var(--taupe-soft);border:1px solid var(--line);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-weight:600;transition:all .25s;display:flex}.steps .s .nm{color:var(--taupe-soft);letter-spacing:.04em;font-size:10px}.steps .s.active .num{background:var(--brown);color:#fff;border-color:var(--brown)}.steps .s.done .num{background:var(--caramel);color:#fff;border-color:var(--caramel)}.steps .s.active .nm,.steps .s.done .nm{color:var(--brown)}.steps .s:before{content:"";background:var(--line);width:100%;height:1px;position:absolute;top:13px;left:-50%}.steps .s:first-child:before{display:none}.steps .s.done:before,.steps .s.active:before{background:var(--caramel)}.heading{font-family:var(--serif);color:var(--brown);letter-spacing:.04em;margin:0 0 6px;font-size:21px;font-weight:600}.lead{color:var(--taupe);margin:0 0 20px;font-size:13px;line-height:1.9}.eyebrow{letter-spacing:.18em;color:var(--caramel-deep);align-items:center;gap:9px;margin:22px 0 10px;font-size:11px;font-weight:700;display:flex}.eyebrow:after{content:"";background:var(--line-soft);flex:1;height:1px}.staff-intro{background:var(--surface-warm);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:18px;align-items:center;gap:16px;margin-bottom:22px;padding:18px 20px;display:flex}.staff-intro .ring{width:52px;height:52px;font-family:var(--serif);color:#fff;background:linear-gradient(150deg, var(--caramel), var(--rose));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;display:flex}.staff-intro .label{letter-spacing:.16em;color:var(--caramel-deep);font-size:10.5px;font-weight:700}.staff-intro .name{font-family:var(--serif);color:var(--brown);margin-top:3px;font-size:18px}.staff-intro .note{color:var(--taupe-soft);margin-top:2px;font-size:11px}.stores{gap:12px;display:flex}.store{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:16px;flex:1;padding:18px 10px;transition:all .2s}.store .jp{font-family:var(--serif);color:var(--brown);font-size:17px}.store.on{border-color:var(--caramel);background:var(--surface-warm);box-shadow:var(--shadow-card)}.store.on .jp{color:var(--caramel-deep)}.menu{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;margin-bottom:12px;padding:17px 18px;transition:all .2s;display:block}.menu.on{border-color:var(--caramel);background:var(--surface-warm);box-shadow:var(--shadow-soft)}.menu .top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.menu .nm{font-family:var(--serif);color:var(--brown);font-size:16px;line-height:1.5}.menu .pr{font-family:var(--serif);color:var(--caramel-deep);white-space:nowrap;font-size:17px}.menu .pr small{font-size:11px;font-family:var(--sans);color:var(--taupe-soft)}.menu .dur{color:var(--taupe-soft);letter-spacing:.03em;margin-top:5px;font-size:11.5px}.menu .desc{color:var(--taupe);border-top:1px solid var(--line-soft);margin-top:9px;padding-top:9px;font-size:12px;line-height:1.75}.dates{scrollbar-width:none;gap:9px;margin:0 -22px;padding:2px 22px 10px;display:flex;overflow-x:auto}.dates::-webkit-scrollbar{display:none}.day{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;flex-shrink:0;width:54px;padding:11px 0 10px;transition:all .18s}.day .wd{color:var(--taupe-soft);letter-spacing:.05em;font-size:10.5px}.day .dy{font-family:var(--serif);color:var(--brown);margin-top:3px;font-size:17px}.day.on{background:var(--brown);border-color:var(--brown)}.day.on .wd,.day.on .dy{color:#fff}.day.sat .wd{color:#6e86a6}.day.sun .wd{color:var(--terracotta)}.day.on .wd{color:#ffffffd9}.slots{grid-template-columns:repeat(4,1fr);gap:9px;margin-top:6px;display:grid}.slot{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:12px;padding:11px 0 9px;transition:all .18s}.slot .t{font-family:var(--serif);color:var(--brown);font-size:15px}.slot .lv{color:var(--caramel);margin-top:1px;font-size:11px}.slot.on{background:var(--brown);border-color:var(--brown)}.slot.on .t{color:#fff}.slot.on .lv{color:var(--peach)}.legend{color:var(--taupe-soft);letter-spacing:.03em;margin-top:14px;font-size:11px}.field{margin-bottom:16px}.field label{color:var(--brown);letter-spacing:.03em;margin-bottom:7px;font-size:12.5px;display:block}.field .req{color:var(--terracotta);letter-spacing:.08em;margin-left:6px;font-size:10.5px}.field input,.field textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--brown);border-radius:12px;padding:13px 14px;font-size:15px;transition:border-color .15s}.field input::placeholder,.field textarea::placeholder{color:#c7bdb8}.field input:focus,.field textarea:focus{border-color:var(--caramel);outline:none}.field textarea{resize:vertical;min-height:84px;line-height:1.7}.field .err{color:var(--terracotta);margin-top:6px;font-size:11.5px}.policy{background:var(--terracotta-bg);border:1px solid #ebd6cc;border-radius:16px;margin:20px 0;padding:16px 18px}.policy .ttl{letter-spacing:.14em;color:var(--terracotta);margin-bottom:9px;font-size:11px;font-weight:700}.policy .hl{color:var(--terracotta);margin-bottom:10px;font-size:13px;font-weight:700;line-height:1.75}.policy ul{margin:0;padding-left:18px}.policy li{color:#8a6358;margin-bottom:5px;font-size:12px;line-height:1.85}.consent{align-items:flex-start;gap:10px;margin:16px 0 4px;display:flex}.consent input{width:19px;height:19px;accent-color:var(--caramel-deep);flex-shrink:0;margin-top:1px}.consent label{color:var(--brown);font-size:13px;line-height:1.6}.summary{background:var(--surface);box-shadow:var(--shadow-card);border:1px solid var(--line-soft);border-radius:18px;margin-bottom:18px;overflow:hidden}.srow{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:14px;padding:14px 18px;display:flex}.srow:last-child{border-bottom:none}.srow .k{color:var(--taupe-soft);letter-spacing:.04em;flex-shrink:0;width:76px;font-size:11.5px}.srow .v{color:var(--brown);flex:1;font-size:14px;line-height:1.6}.srow .v .strong{font-family:var(--serif);font-size:15px}.srow.feature{background:var(--surface-warm)}.srow.feature .v{color:var(--caramel-deep)}.tag{letter-spacing:.06em;border-radius:20px;padding:3px 9px;font-size:10.5px;font-weight:700;display:inline-block}.tag.nm{background:var(--caramel);color:#fff}.tag.om{background:var(--cream-deep);color:var(--taupe)}.fineprint{color:var(--taupe-soft);font-size:11.5px;line-height:1.8}.footer{width:100%;max-width:460px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--cream) 72%, #faf7f500);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.btn{letter-spacing:.06em;background:var(--brown);color:#fff;border:none;border-radius:14px;width:100%;padding:16px;font-size:15.5px;font-weight:700;transition:all .18s;box-shadow:0 6px 18px #3d35352e}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.32;box-shadow:none}.btn.accent{background:var(--caramel-deep);box-shadow:0 6px 18px #a87b5247}.back{color:var(--taupe-soft);letter-spacing:.04em;background:0 0;border:none;margin-bottom:6px;padding:6px 2px;font-size:13px}.done{text-align:center;padding:30px 6px}.done .seal{border:1px solid var(--caramel);background:var(--surface-warm);border-radius:50%;justify-content:center;align-items:center;width:78px;height:78px;margin:0 auto 22px;display:flex}.done .seal svg{width:34px;height:34px}.done h2{font-family:var(--serif);color:var(--brown);letter-spacing:.05em;margin:0 0 12px;font-size:22px}.done p{color:var(--taupe);margin:0;font-size:13.5px;line-height:2}.paybox{background:var(--surface-warm);border:1px solid var(--peach);text-align:left;border-radius:18px;margin:22px 0;padding:20px}.paybox .ph{font-family:var(--serif);color:var(--caramel-deep);letter-spacing:.04em;margin-bottom:8px;font-size:15px}.paybox .amt{font-family:var(--serif);color:var(--brown);margin:6px 0 10px;font-size:28px}.paybox .amt small{color:var(--taupe-soft);font-size:13px;font-family:var(--sans)}.paybox p{color:var(--taupe);font-size:12.5px;line-height:1.85}.note{text-align:center;color:var(--taupe-soft);padding:30px 10px;font-size:13px;line-height:1.95}.loading{text-align:center;color:var(--taupe-soft);padding:64px 16px;font-size:13px}.spinner{border:2px solid var(--line);border-top-color:var(--caramel);border-radius:50%;width:30px;height:30px;margin:0 auto 14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.banner-err{background:var(--terracotta-bg);color:var(--terracotta);text-align:center;border:1px solid #ebd6cc;border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:12.5px;line-height:1.6}a{color:var(--caramel-deep)}
