:root{--ink:#183d2e;--deep:#123526;--green:#315d45;--sage:#dce8dc;--cream:#f8f7f0;--paper:#fffefa;--line:#d8e2d8;--muted:#6d7f73;--gold:#c69b4b;--shadow:0 16px 40px #15342512}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 96% 4%,#e7efe3 0,transparent 26rem),linear-gradient(155deg,#f3f5ef,#fffdf7 55%,#f0f5ee);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC",sans-serif}main{max-width:800px;margin:auto;padding:22px 18px 64px}header{display:flex;align-items:center;justify-content:space-between;margin:0 2px 26px}.brand{display:block;width:min(200px,55vw)}.brand img{display:block;width:100%;height:auto}.reservation-label{display:inline-flex;align-items:center;gap:7px;border:1px solid #d4dfd3;border-radius:999px;background:#fffdf8;padding:8px 12px;color:#486657;font-size:.82rem;font-weight:850}.reservation-label:before{content:'';width:7px;height:7px;border-radius:50%;background:#79a783}.hero{position:relative;overflow:hidden;padding:34px 30px 31px;border-radius:25px;background:linear-gradient(130deg,#123b2b,#2f6047);color:#fff;box-shadow:0 20px 38px #153a2b28}.hero:after,.hero:before{content:'';position:absolute;border:1px solid #cbdcbe38;border-radius:50%}.hero:before{width:250px;height:250px;right:-116px;top:-145px}.hero:after{width:190px;height:190px;right:50px;bottom:-160px}.hero>*{position:relative;z-index:1}.hero p{margin:0;color:#dce8d9;font-size:.73rem;font-weight:850;letter-spacing:.13em}.hero h1{margin:10px 0;font-size:clamp(2rem,6vw,2.72rem);letter-spacing:-.04em}.hero span{color:#e6eee4;font-size:1rem}.steps{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px 0 24px;color:#5e7466;font-size:.8rem;font-weight:850}.steps span{display:flex;align-items:center;gap:6px}.steps b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#dce8dc;color:#315d45;font-size:.75rem}.steps i{width:25px;height:1px;background:#c5d4c5}.card{background:color-mix(in srgb,var(--paper) 93%,#fff);border:1px solid var(--line);border-radius:20px;padding:23px;margin:16px 0;box-shadow:var(--shadow)}.card h2{margin:0;font-size:1.22rem;letter-spacing:.01em}.card small{color:var(--muted);font-size:.76rem;font-weight:700}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}label{display:grid;gap:7px;color:#345848;font-size:.88rem;font-weight:850}.wide{margin-top:15px}input,select,textarea{width:100%;border:1px solid #cfdcd0;border-radius:11px;padding:12px;background:#fff;color:var(--ink);font:inherit;outline:none;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#6e9879;box-shadow:0 0 0 3px #cfe0d233}textarea{resize:vertical}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section-head p{margin:5px 0 0;color:var(--muted);font-size:.85rem;line-height:1.5}.text-button{border:0;background:#eff4ee;border-radius:9px;padding:8px 10px;color:#50705d;font:850 .82rem inherit}.categories{display:flex;overflow:auto;gap:8px;margin:19px 0 13px;padding-bottom:3px}.categories button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:#fff;padding:8px 14px;color:var(--ink);font-weight:850}.categories button.active{background:var(--deep);border-color:var(--deep);color:#fff;box-shadow:0 6px 13px #12352624}.menu{display:grid;gap:9px}.dish{display:grid;grid-template-columns:1fr auto;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:14px;background:linear-gradient(105deg,#fff,#fbfcf8);color:var(--ink);transition:transform .15s,border .15s,box-shadow .15s}.dish:not(:disabled):active{transform:scale(.99)}.dish:not(:disabled):hover{border-color:#a8c0aa;box-shadow:0 8px 18px #214c3a10}.dish:disabled{opacity:.46}.dish h3{margin:0;font-size:1rem}.dish p{margin:5px 0 0;color:var(--muted);font-size:.81rem;line-height:1.45}.dish strong{align-self:center;font-size:1rem;white-space:nowrap}.dish .plus{display:grid;place-items:center;margin:8px 0 0 auto;width:31px;height:31px;border-radius:50%;background:#e5efe5;color:var(--deep);font-style:normal;font-size:1.35rem;line-height:1}.selected{border-color:#cbdacb;background:linear-gradient(135deg,#fffefa,#f6faf4)}.selected>#total{color:var(--deep);font-size:1.12rem}.cart{display:grid;gap:8px;margin-top:14px}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:.94rem}.cart-line small{display:block;color:var(--muted);margin-top:3px;line-height:1.4}.cart-line button{border:0;background:#f8ebe6;color:#a04a3b;border-radius:8px;padding:6px 9px;font-weight:850}.muted{margin:0;color:var(--muted)}.submit{width:100%;border:0;border-radius:14px;padding:16px;background:linear-gradient(105deg,#1c4835,#32624a);color:#fff;font-weight:900;font-size:1.05rem;letter-spacing:.02em;box-shadow:0 12px 20px #173f2d26}.submit:disabled{opacity:.55}.message{min-height:1.3em;margin:15px 0 0;text-align:center;color:#9b3b2d;font-weight:850}.message.ok{color:#26714d}.fine{max-width:550px;margin:13px auto 0;text-align:center;color:var(--muted);font-size:.78rem;line-height:1.6}.trap{position:absolute;left:-10000px}dialog{border:0;border-radius:22px;padding:0;width:min(92vw,400px);box-shadow:0 20px 60px #0e281c66}dialog::backdrop{background:#13261b77}dialog article{position:relative;padding:27px;text-align:center;background:#fffefa}.close{position:absolute;right:13px;top:10px;border:0;background:transparent;color:#50705d;font-size:1.5rem}.eyebrow{margin:0;color:#b37d26;font-size:.75rem;font-weight:900;letter-spacing:.13em}.stepper{display:flex;justify-content:center;align-items:center;gap:23px;margin:23px 0}.stepper button{width:51px;height:51px;border:0;border-radius:50%;background:#e6f0e7;color:var(--deep);font-size:1.7rem;font-weight:900}.stepper output{min-width:50px;font-size:2rem;font-weight:900}@media(max-width:540px){main{padding:16px 13px 46px}.fields{grid-template-columns:1fr}.card{padding:18px}.hero{padding:29px 23px}.steps{gap:6px;font-size:.72rem}.steps i{width:14px}.brand{width:168px}.reservation-label{padding:7px 9px;font-size:.75rem}}
.hero{min-height:355px;padding:32px;background:linear-gradient(90deg,#102e22e8 0%,#163d2bc9 44%,#163d2b18 100%),url("reservation-hero.jpg") 66% center/cover;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.hero:before{display:none}.hero:after{width:260px;height:260px;right:-135px;bottom:-158px;border-color:#f8ecd855;background:#f8ecd80c}.hero-copy{max-width:365px}.hero h1{font-size:clamp(2.35rem,7.5vw,3.65rem);line-height:1.12;margin:13px 0 14px;letter-spacing:-.065em;text-shadow:0 2px 18px #07170e66}.hero span{display:block;max-width:290px;font-size:1rem;line-height:1.65}.hero-note{align-self:flex-end;display:grid;gap:3px;min-width:178px;padding:11px 13px;border:1px solid #fff8;border-radius:12px;background:#102e2296;backdrop-filter:blur(8px);font-size:.82rem}.hero-note small{color:#dce9dd;font-size:.7rem}.welcome{display:grid;grid-template-columns:118px 1fr;gap:16px;align-items:center;margin:18px 2px 12px;padding:11px;border:1px solid #d7e1d6;border-radius:18px;background:#fffdf9;box-shadow:0 10px 26px #1432220c}.welcome img{width:118px;height:118px;object-fit:cover;border-radius:12px;filter:saturate(.92) contrast(1.04)}.welcome p,.card-kicker{margin:0 0 5px;color:#a9792e;font-size:.68rem;font-weight:900;letter-spacing:.13em}.welcome h2{margin:0;color:var(--deep);font-size:1.08rem;line-height:1.42}.welcome span{display:block;margin-top:6px;color:var(--muted);font-size:.81rem;line-height:1.5}.card-kicker{margin-bottom:7px}.menu-moment{position:relative;display:flex;align-items:center;overflow:hidden;min-height:76px;margin:17px 0 2px;border-radius:13px;background:#173e2d;color:#fff}.menu-moment:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#143425e8 0%,#143425a8 48%,#14342516 100%)}.menu-moment img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;filter:saturate(.9) contrast(1.04)}.menu-moment span{position:relative;z-index:1;max-width:240px;padding:13px 16px;font-size:.82rem;font-weight:800;line-height:1.5}.menu-card{overflow:hidden}.dish{background:linear-gradient(105deg,#fffefa,#f9fcf7)}.dish:focus-visible,.submit:focus-visible,.categories button:focus-visible{outline:3px solid #c69b4b;outline-offset:2px}@media(max-width:540px){.hero{min-height:333px;padding:25px 22px;background-position:62% center}.hero h1{font-size:2.55rem}.hero-note{align-self:flex-start;margin-top:7px}.welcome{grid-template-columns:92px 1fr;gap:12px}.welcome img{width:92px;height:92px}.welcome h2{font-size:1rem}.welcome span{font-size:.76rem}.menu-moment{margin-top:15px}}
.required-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 2px;padding:11px 12px;border:1px solid #ead6aa;border-radius:11px;background:#fff9ea;color:#71531b;font-size:.81rem;line-height:1.4}.required-notice b{font-weight:900}.required-notice span{color:#8a7550;font-size:.76rem}.required-field .field-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.required-field em{border-radius:999px;background:#f6dfdb;color:#a14232;padding:2px 7px;font-size:.66rem;font-style:normal;letter-spacing:.03em}.order-link{display:flex;align-items:center;justify-content:space-between;margin:-6px 2px 20px;padding:12px 14px;border:1px solid #d8e3d7;border-radius:12px;background:#f8fbf6;color:#577061;text-decoration:none;font-size:.83rem}.order-link b{color:#1f563c;font-size:.88rem}.success-dialog{display:grid;justify-items:center;gap:12px;padding:34px 27px;text-align:center}.success-dialog h2{margin:0;color:var(--deep);font-size:1.55rem;line-height:1.45}.success-dialog>p:last-of-type{margin:0;color:var(--muted);font-size:.88rem;line-height:1.65}.success-mark{display:grid;place-items:center;width:57px;height:57px;border-radius:50%;background:#e4f0e4;color:#286044;font-size:1.8rem;font-weight:900}.success-dialog .submit{margin-top:7px}@media(max-width:540px){.required-notice{display:grid;gap:3px}.order-link{margin-bottom:18px}}
.message.error{padding:10px 12px;border:1px solid #efc3bc;border-radius:10px;background:#fff3f0;color:#a23f30}
.success-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#13261b88}.success-overlay[hidden]{display:none}.success-open{overflow:hidden}.success-overlay .success-dialog{width:min(100%,400px);border-radius:22px;background:#fffefa;box-shadow:0 24px 70px #07170e66}
