/* YuGuo reservation page */
.res{background:var(--night);color:var(--on-d);padding:48px 0 80px;min-height:70vh}
.res-in{max-width:760px}
.res-head{margin-bottom:28px}
.res-zh{font:500 18px/1 var(--zh);letter-spacing:.5em;color:var(--gold);margin-bottom:12px}
.res-head h1{font-size:clamp(34px,5vw,50px);font-weight:300}
.res-head p{color:var(--mute-d)}
.blk{border:1px solid var(--line-d);border-radius:var(--r);padding:20px 22px 22px;margin:0 0 16px;background:rgba(255,255,255,.025);min-width:0}
.blk[disabled]{opacity:.55}
.blk legend{display:flex;align-items:center;gap:10px;padding:0 6px;font:600 18px/1.2 var(--disp);letter-spacing:.04em;color:var(--on-d)}
.num{width:28px;height:28px;border-radius:50%;background:var(--gold);color:var(--night);font:700 14px/29px var(--disp);text-align:center}
.hint{font-size:15px;color:var(--mute-d);margin:8px 0 0}
.cal{max-width:420px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 10px}
.cal-head b{font:600 17px/1 var(--disp);letter-spacing:.06em;text-transform:capitalize}
.cal-nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-d);background:none;color:var(--gold-lt);font-size:22px;line-height:1;cursor:pointer}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-dow span{text-align:center;font-size:12px;color:var(--mute-d);text-transform:uppercase;letter-spacing:.08em;padding-bottom:4px}
.d{aspect-ratio:1/1;border-radius:5px;border:1px solid var(--line-d);background:none;color:var(--on-d);font:500 15px/1 var(--body);cursor:pointer}
.d:hover:not(:disabled){border-color:var(--gold)}
.d.out{border:0;visibility:hidden}
.d.no{opacity:.28;cursor:default}
.d.today{box-shadow:inset 0 -3px 0 var(--gold-dk)}
.d[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--night);font-weight:700}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:7px;margin-top:6px}
.slot{min-height:42px;border-radius:5px;border:1px solid var(--line-d);background:none;color:var(--on-d);font:500 15px/1 var(--body);cursor:pointer;font-variant-numeric:tabular-nums}
.slot:hover{border-color:var(--gold)}
.slot[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--night);font-weight:700}
.res-step{margin-top:8px}
.step-l{margin-left:8px;color:var(--mute-d)}
.potline{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-top:6px}
.potline p{margin:0}
.potline a{color:var(--gold-lt);font-size:15px;white-space:nowrap}
.chk{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:15px;color:var(--on-d);cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--gold);margin-top:2px;flex:none}
.demo{font-size:14px;color:var(--gold-lt);background:rgba(201,168,106,.1);border-radius:4px;padding:8px 12px;margin:6px 0 14px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.fields label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--mute-d)}
.fields .wide{grid-column:1/-1}
.fields input,.fields textarea{font:400 16px/1.4 var(--body);color:var(--on-d);background:#0c0f15;border:1px solid #3a3f4a;border-radius:5px;padding:11px 12px;width:100%}
.fields input:focus,.fields textarea:focus{border-color:var(--gold);outline:none}
.err{color:#f08b7a;font-size:15px;min-height:1.4em;margin:12px 0 8px}
#send{width:100%}
.btn-ghost-d{background:none;color:var(--mute-d);border-color:var(--line-d)}
.done{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start}
.done[hidden]{display:none}
.done .btn-call{border-color:var(--on-d);color:var(--on-d)}
.done .btn-call:hover{background:var(--on-d);color:var(--night)}
.sheet{position:relative;background:#0c0d10;border:1px solid #2c2f36;border-radius:6px;padding:18px 18px 22px;color:#f3f1ec;transform:rotate(-1.2deg);box-shadow:0 30px 60px -24px rgba(0,0,0,.8)}
.sheet-top{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid #3a3d44;margin-bottom:12px}
.sheet-top b{display:block;font:600 18px/1 var(--disp);letter-spacing:.12em;color:var(--gold-lt)}
.sheet-top b span{font-family:var(--zh);letter-spacing:.05em}
.sheet-top div>span{font-size:12px;color:#a9a69f}
.sheet-res{background:#fbfaf6;color:#1a1a1a;border-radius:3px;padding:8px 12px;margin-bottom:12px}
.sheet-res p{display:flex;align-items:baseline;gap:10px;margin:0;border-bottom:1px dotted #c9c2b4;padding:3px 0}
.sheet-res p:last-child{border:0}
.lab{width:52px;flex:none;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#6c685f}
.hw{font:600 26px/1.05 var(--hand);color:var(--pen);transform:rotate(-1.5deg)}
.sheet-rows{list-style:none;margin:0;padding:0;font-size:14px}
.sheet-rows li{display:grid;grid-template-columns:40px 34px 1fr;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid #22252b}
.sheet-rows li.free{display:block;color:#a9a69f;font-style:italic;border:0}
.sheet-rows [lang=zh]{color:#b9b5ad}
.sheet-rows .no{color:#a9a69f;text-align:right}
.stamp{position:absolute;right:16px;top:118px;width:118px;height:118px;border-radius:50%;border:4px solid var(--stamp);color:var(--stamp);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-14deg) scale(1);opacity:.9;background:radial-gradient(circle,rgba(251,250,246,.0) 60%,rgba(196,42,31,.06))}
.stamp::before{content:"";position:absolute;inset:5px;border:1.5px solid var(--stamp);border-radius:50%}
.stamp span{font:600 27px/1 var(--zh);letter-spacing:.05em}
.stamp small{font:700 10px/1 var(--disp);letter-spacing:.14em;margin-top:6px}
.stamp.down{animation:stamp .45s cubic-bezier(.3,1.6,.5,1) .35s both}
@keyframes stamp{0%{transform:rotate(-14deg) scale(2.2);opacity:0}100%{transform:rotate(-14deg) scale(1);opacity:.9}}
.done-txt h2{font-weight:300}
.done-txt p{color:var(--on-d)}
.done-btns{display:flex;flex-direction:column;gap:10px;max-width:320px}
@media (max-width:760px){
  .done{grid-template-columns:1fr}
  .sheet{transform:none}
  .done-btns{max-width:none}
}
@media (max-width:560px){
  .res{padding:30px 0 70px}
  .blk{padding:16px 14px 18px}
  .fields{grid-template-columns:1fr}
  .stamp{width:96px;height:96px;top:112px;right:12px}
  .stamp span{font-size:22px}
}
