:root{--brown:#3d3535;--taupe:#6b5e5e;--taupe-dark:#4a3f3f;--taupe-soft:#8a7e7e;--text-mute:#b5abab;--caramel:#c4956a;--caramel-deep:#a87b52;--peach:#e8d5c0;--rose:#d4a5a5;--cream:#faf7f5;--cream-deep:#f3eeea;--surface:#fff;--surface-warm:#fdf9f6;--line:#e8e0db;--line-soft:#f0ebe7;--sage:#7ba88e;--amber:#d4a55a;--terracotta:#c97070;--terracotta-bg:#f7ede8;--sat:#6e86a6;--serif:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--sans:"Zen Kaku Gothic New", -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--radius-sm:8px;--radius-md:14px;--radius-lg:18px;--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:480px;min-height:100vh;margin:0 auto;display:flex;position:relative}.app-header{z-index:20;text-align:center;background:radial-gradient(120% 80% at 50% 0%, var(--surface-warm) 0%, var(--cream) 72%);border-bottom:1px solid var(--line-soft);padding:22px 24px 18px;position:sticky;top:0}.brandmark{font-family:var(--serif);letter-spacing:.32em;color:var(--brown);margin:0 0 0 .32em;font-size:22px;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:12px auto 0}.content{flex:1;padding:20px 22px 124px}.step-ind{align-items:flex-start;margin:2px 0 24px;display:flex}.step-ind .si{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex;position:relative}.step-ind .si-node{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}.step-ind .si-label{color:var(--taupe-soft);letter-spacing:.03em;font-size:10.5px}.step-ind .si:before{content:"";background:var(--line);width:100%;height:1px;position:absolute;top:13px;left:-50%}.step-ind .si:first-child:before{display:none}.step-ind .si.active .si-node{background:var(--brown);color:#fff;border-color:var(--brown)}.step-ind .si.done .si-node{background:var(--caramel);color:#fff;border-color:var(--caramel)}.step-ind .si.active .si-label,.step-ind .si.done .si-label{color:var(--brown)}.step-ind .si.done:before,.step-ind .si.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);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);align-items:center;gap:15px;margin-bottom:20px;padding:16px 18px;display:flex}.staff-intro .ring{width:50px;height:50px;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:21px;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{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);text-align:center;flex:1;padding:17px 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:var(--radius-md);align-items:stretch;gap:13px;width:100%;margin-bottom:12px;padding:12px;transition:all .2s;display:flex}.menu.on{border-color:var(--caramel);background:var(--surface-warm);box-shadow:var(--shadow-soft)}.menu-photo{border-radius:var(--radius-sm);background:linear-gradient(150deg, var(--cream-deep), var(--peach));flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;width:96px;min-height:96px;display:flex;overflow:hidden}.menu-photo img{object-fit:cover;width:100%;height:100%;display:block}.menu-photo .ph-label{font-family:var(--serif);color:var(--caramel-deep);letter-spacing:.04em;text-align:center;padding:4px;font-size:13px;font-weight:600}.menu-main{flex-direction:column;flex:1;min-width:0;display:flex}.menu .nm{font-family:var(--serif);color:var(--brown);font-size:16px;line-height:1.5}.menu .dur{color:var(--taupe-soft);letter-spacing:.03em;margin-top:5px;font-size:11.5px}.menu .desc{color:var(--taupe);margin-top:8px;font-size:12px;line-height:1.7}.menu .pr{font-family:var(--serif);color:var(--caramel-deep);margin-top:auto;padding-top:9px;font-size:18px}.menu .pr small{font-size:11px;font-family:var(--sans);color:var(--taupe-soft)}.staff-pick{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);align-items:center;gap:14px;width:100%;margin-bottom:11px;padding:13px 15px;transition:all .2s;display:flex}.staff-pick.on{border-color:var(--caramel);background:var(--surface-warm);box-shadow:var(--shadow-card)}.sp-avatar{width:48px;height:48px;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:20px;display:flex}.sp-avatar.omakase{background:linear-gradient(150deg, var(--taupe-soft), var(--taupe))}.sp-body{flex:1;min-width:0}.sp-name{font-family:var(--serif);color:var(--brown);font-size:16px;font-weight:600}.sp-note{color:var(--taupe-soft);margin-top:2px;font-size:11.5px}.sp-check{border:1.5px solid var(--line);border-radius:50%;flex-shrink:0;width:22px;height:22px;transition:all .2s;position:relative}.staff-pick.on .sp-check{border-color:var(--caramel);background:var(--caramel)}.staff-pick.on .sp-check:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.cal-nav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cal-nav .lbl{font-family:var(--serif);color:var(--brown);font-size:14px}.cal-nav button{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);color:var(--taupe);white-space:nowrap;padding:7px 13px;font-size:12.5px}.cal-nav button:disabled{opacity:.35}.cal-scroll{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);-webkit-overflow-scrolling:touch;max-height:60vh;overflow:auto}.cal-grid{width:max-content;min-width:100%;display:grid}.cal-corner{z-index:4;background:var(--surface-warm);border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:0;left:0}.cal-dayhead{z-index:3;background:var(--surface-warm);border-bottom:1px solid var(--line);border-right:1px solid var(--line-soft);text-align:center;padding:7px 0;position:sticky;top:0}.cal-dayhead .wd{color:var(--taupe-soft);letter-spacing:.04em;font-size:10.5px}.cal-dayhead .dy{font-family:var(--serif);color:var(--brown);margin-top:1px;font-size:16px}.cal-dayhead.sat .wd,.cal-dayhead.sat .dy{color:var(--sat)}.cal-dayhead.sun .wd,.cal-dayhead.sun .dy{color:var(--terracotta)}.cal-time{z-index:2;background:var(--surface-warm);border-right:1px solid var(--line);color:var(--taupe-soft);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:11px;display:flex;position:sticky;left:0}.cal-time.hour{color:var(--taupe);border-top:1px solid var(--line-soft);font-weight:700}.cal-cell{background:var(--surface);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);width:100%;height:34px;color:var(--text-mute);justify-content:center;align-items:center;padding:0;font-size:15px;font-weight:700;line-height:1;display:flex}.cal-cell.hour{border-top:1px solid var(--line-soft)}.cal-cell.ok{color:var(--sage)}.cal-cell.few{color:var(--amber)}.cal-cell.full{color:var(--text-mute);background:var(--surface-warm)}.cal-cell.off{color:#d8d0cb;background:var(--cream-deep);font-size:12px}.cal-cell.load{color:var(--line)}.cal-cell.ok,.cal-cell.few{cursor:pointer}.cal-cell.ok:active,.cal-cell.few:active{background:var(--surface-warm)}.cal-cell.on{background:var(--brown);color:#fff;box-shadow:inset 0 0 0 2px var(--caramel-deep)}.cal-cell:disabled{cursor:default}.cal-legend{color:var(--taupe-soft);flex-wrap:wrap;gap:12px;margin-top:13px;font-size:11.5px;display:flex}.cal-legend span{align-items:center;gap:4px;display:inline-flex}.cal-legend b{font-size:14px}.cal-legend .g{color:var(--sage)}.cal-legend .o{color:var(--amber)}.cal-legend .x{color:var(--text-mute)}.cal-legend .d{color:#d8d0cb}.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);border-radius:var(--radius-md);background:var(--surface);width:100%;height:50px;color:var(--brown);padding:0 14px;font-size:16px;transition:border-color .15s}.field input::placeholder,.field textarea::placeholder{color:#c7bdb8}.field input:focus,.field textarea:focus{border-color:var(--caramel);outline:none;box-shadow:0 0 0 3px #c4956a1f}.field textarea{resize:vertical;height:auto;min-height:90px;padding:13px 14px;line-height:1.7}.field .err{color:var(--terracotta);margin-top:6px;font-size:11.5px}.policy{background:var(--terracotta-bg);border-radius:var(--radius-md);border:1px solid #ebd6cc;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);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--line-soft);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 .strong{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:480px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--cream) 74%, #faf7f500);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.footer-sel{color:var(--taupe);text-align:center;letter-spacing:.02em;margin-bottom:9px;font-size:12px}.footer-sel b{font-family:var(--serif);color:var(--caramel-deep);font-weight:600}.btn{border-radius:var(--radius-md);letter-spacing:.06em;background:var(--brown);color:#fff;border:none;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:76px;height:76px;margin:0 auto 22px;display:flex}.done .seal svg{width:33px;height:33px}.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);border-radius:var(--radius-lg);text-align:left;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:28px 10px;font-size:13px;line-height:1.95}.loading{text-align:center;color:var(--taupe-soft);padding:60px 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);border-radius:var(--radius-md);text-align:center;border:1px solid #ebd6cc;margin-bottom:14px;padding:12px 14px;font-size:12.5px;line-height:1.6}a{color:var(--caramel-deep)}
