/* Reservation prototype only. Existing site tokens/header/footer stay unchanged. */
.rv{padding-top:32px;padding-bottom:48px;font-size:16px;line-height:24px}
.rv *, .rv-dialog *{box-sizing:border-box}
.rv [hidden],.rv-dialog [hidden]{display:none}
.rv button,.rv-dialog button{font:inherit;cursor:pointer;border-radius:0}
.rv button:disabled,.rv-dialog button:disabled{cursor:not-allowed;color:var(--muted);background:var(--surface)}
.rv button:focus-visible,.rv a:focus-visible,.rv-dialog button:focus-visible,.rv-dialog a:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.rv-kicker{font-size:14px;line-height:20px;color:var(--muted);margin:0 0 8px}
.rv h1{font-family:var(--f-zh);font-size:28px;line-height:36px;font-weight:500;margin:0 0 24px}
.rv h2{font-family:var(--f-zh);font-size:20px;line-height:28px;font-weight:500;margin:0 0 20px}
.rv h2.rv-guide{font-family:var(--f-body);font-size:16px;line-height:24px;font-weight:400;margin:0}
.rv h2.rv-guide-first{margin:0 24px 24px 0}
.rv p{margin:0}
.rv-field{border:0;padding:0;margin:0 0 24px;min-width:0}
.rv-label,.rv-field legend{display:block;font-size:14px;line-height:20px;color:var(--muted);padding:0;margin:0 0 8px}
.rv-options{display:flex;gap:8px}
.rv-option,.rv-date,.rv-date-open{min-height:48px;padding:11px 12px;background:var(--bg);border:1px solid var(--border);color:var(--text);text-align:center;line-height:24px}
.rv-option{flex:1;min-width:0;white-space:nowrap}
.rv-option[data-action="party"][data-value="5"]{flex:0 0 80px}
.rv-option[aria-pressed=true],.rv-slot[aria-pressed=true],.rv-date[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--bg)}
.rv-b .rv-option[aria-pressed=true],.rv-b .rv-slot[aria-pressed=true],.rv-b-panel .rv-cal-day[aria-pressed=true]{border:1px solid var(--accent);background:var(--bg);color:var(--accent);position:relative}
.rv-b .rv-option[aria-pressed=true]::before,.rv-b .rv-slot[aria-pressed=true]::before,.rv-b-panel .rv-cal-day[aria-pressed=true]::before{content:'✓';font-size:12px;margin-right:4px}
.rv-b .rv-option[data-value="5"][aria-pressed=true]::before{position:absolute;right:1px;top:-6px;background:var(--bg);margin:0}
.rv-b-panel .rv-primary{background:var(--bg);color:var(--accent)}
.rv-option:not(:disabled):hover,.rv-slot:not(:disabled):hover,.rv-date:not(:disabled):hover{border-color:var(--accent)}
.rv-party-top{max-width:420px}
.rv-layout{display:grid;align-items:start;grid-template-columns:360px minmax(0,1fr);gap:40px}
.rv-b .rv-layout{grid-template-columns:280px minmax(0,1fr);gap:32px}
.rv-divider{border-top:1px solid var(--border);padding-top:24px}
.rv-dates{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}
.rv-date{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;min-height:64px}
.rv-date span:first-child{font-size:14px;line-height:20px}
.rv-date span:last-child{font-size:16px;line-height:24px;font-variant-numeric:tabular-nums}
.rv-date-open{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left}
.rv-date-open span:last-child{font-size:20px}
.rv-mobile-calendar{display:none}
.rv-calendar{width:100%;margin-top:24px}
.rv-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}
.rv-cal-head strong{font-size:16px;font-weight:500;line-height:24px}
.rv-cal-nav{width:44px;height:44px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:20px}
.rv-week,.rv-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.rv-week span{font-size:14px;line-height:20px;color:var(--muted);padding:8px 0}
.rv-cal-day{height:44px;padding:0;border:1px solid transparent;background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;line-height:24px}
.rv-cal-day[aria-pressed=true]{background:var(--accent);color:var(--bg)}
.rv-cal-day:disabled{background:var(--bg);opacity:.45}
.rv-cal-day:not(:disabled):hover{border-color:var(--accent)}
.rv-cal-note{font-size:14px;line-height:20px;color:var(--muted);margin-top:12px}
.rv-timeheading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}
.rv-timeheading .rv-label{margin:0}
.rv-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rv-slot{min-width:0;height:44px;line-height:24px;font-size:16px;padding:9px 4px;font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--bg);color:var(--text);white-space:nowrap}
.rv-chair{margin-top:24px;max-width:260px}
.rv-status{padding:20px;border:1px solid var(--border);background:var(--surface);font-size:16px;line-height:24px}
.rv-status a{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;border-bottom:1px solid var(--text);white-space:nowrap}
.rv-action{margin-top:24px;border-top:1px solid var(--border);padding-top:20px;display:flex;align-items:center;gap:20px;justify-content:space-between}
.rv-summary{font-size:14px;line-height:20px;max-width:calc(100% - 144px)}
.rv-primary{min-height:52px;border:1px solid var(--accent);padding:13px 20px;background:var(--accent);color:var(--bg);font-size:16px;line-height:24px;white-space:nowrap}
.rv-primary:disabled{border-color:var(--border)}
.rv-query{width:100%}
.rv-helpers{display:flex;gap:28px;border-top:1px solid var(--border);margin-top:32px;padding-top:12px}
.rv-textbutton{display:inline-flex;min-height:44px;padding:10px 0;align-items:center;gap:12px;background:none;border:0;font-size:14px;line-height:20px;color:var(--text)}
.rv-textbutton:hover{color:var(--accent)}
.rv-criteria-summary{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border);font-size:16px;line-height:24px}
.rv-criteria-summary p{margin:0}
.rv-mobile-edit{display:none}
.rv-placeholder{border-top:1px solid var(--border);padding:24px 0;color:var(--muted)}
.rv-dialog{font-family:var(--f-body);font-size:16px;line-height:24px;color:var(--text);background:var(--bg);padding:24px;border:1px solid var(--border);width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 48px);overscroll-behavior:contain}
.rv-dialog::backdrop{background:rgba(18,17,16,.6)}
.rv-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.rv-dialog h2{font-family:var(--f-zh);font-size:24px;line-height:32px;margin:0;font-weight:500}
.rv-close{width:44px;height:44px;flex-shrink:0;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:24px;line-height:32px}
.rv-dialog p{margin:0 0 16px}
.rv-dialog pre{white-space:pre-wrap;font:inherit;margin:16px 0 20px}
.rv-panel-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}
.rv-panel-link{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:11px 12px;border:1px solid var(--text);white-space:nowrap}
.rv-tel{white-space:nowrap}
.rv-template{border-top:1px solid var(--border);padding-top:20px}
.rv-copy-status{min-height:20px;font-size:14px;line-height:20px;margin-top:12px}
.rv-dialog.rv-calendar-dialog{width:min(384px,calc(100% - 32px));padding:16px}
html:has(#reservation-panel[open]){overflow:hidden}
.rv-dialog{max-width:none}
.rv-calendar-dialog .rv-calendar{margin-top:0}
.rv-calendar-dialog header{margin-bottom:8px}
.rv-traffic .locg{grid-template-columns:1fr;gap:20px}
.rv-traffic .mapw iframe{height:240px}
.rv-traffic .h-en{font-family:var(--f-en);color:var(--muted)}
.rv-traffic .btn-t{font-size:14px}
.rv-traffic .addr-l{font-size:14px;line-height:20px}
.rv-review{margin:20px 0;padding:20px;background:var(--surface)}
.rv-review div{display:flex;justify-content:space-between;gap:16px;padding:6px 0}
.rv-review dt{color:var(--muted)}
.rv-review dd{margin:0}
@media(min-width:861px){.rv-b .rv-controls{border-right:1px solid var(--border);padding-right:0}.rv-b .rv-field{margin-right:24px}.rv-b .rv-query{width:calc(100% - 24px)}.rv-b .rv-options{gap:4px}.rv-b .rv-option{padding-left:0;padding-right:0}.rv-b .rv-option[data-action="party"]{min-width:36px}.rv-b .rv-option[data-action="party"][data-value="5"]{flex:0 0 72px}}
@media(max-width:1100px) and (min-width:861px){.rv-layout{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:32px}.rv-b .rv-layout{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:860px){
  .rv{padding-top:24px;padding-bottom:calc(140px + env(safe-area-inset-bottom))}
  .rv h1{font-size:24px;line-height:32px;margin-bottom:20px}
  .rv-layout,.rv-b .rv-layout{display:block}
  .rv-field{margin-bottom:20px}
  .rv h2.rv-guide-first{margin:0 0 20px}
  .rv-party-top{max-width:none}
  .rv-options{gap:6px}
  .rv-option{padding-left:8px;padding-right:8px}
  .rv-desktop-calendar{display:none}
  .rv-mobile-calendar{display:flex}
  .rv-a .rv-date-section{margin-bottom:20px}
  .rv-calendar{margin-top:0}
  .rv-chair{margin-top:20px;max-width:none}
  .rv-action{position:fixed;bottom:0;left:0;right:0;z-index:40;margin:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--bg);gap:12px;border-top:1px solid var(--border)}
  .rv-summary{max-width:calc(100% - 116px)}
  .rv-action .rv-primary{min-width:104px}
  .rv-helpers{gap:24px;margin-top:24px;padding-top:8px;flex-wrap:wrap}
  .rv-b .rv-controls.is-collapsed{display:none}
  .rv-b .rv-result{margin-top:24px}
  .rv-b .rv-placeholder{display:none}
  .rv-mobile-edit{display:inline-flex;flex-shrink:0}
  .rv-dialog{padding:20px;max-height:calc(100dvh - 32px)}
  .rv-dialog.rv-calendar-dialog{padding:16px;max-height:80dvh}
  .rv-dialog h2{font-size:24px;line-height:32px}
  .rv-dialog .rv-panel-links{flex-direction:column;align-items:stretch}
  .rv-dialog .rv-panel-link{width:100%}
}

/* Embedded booking keeps the original mobile contact bar independent. */
@media(max-width:767px){
  #reservation-app[data-embedded]{padding-bottom:48px}
  #reservation-app[data-embedded] .rv-action{position:static;margin-top:24px;padding:20px 0 0;z-index:auto}
}

#reservation-app .rv-booking-note{font-size:16px;line-height:24px;margin:0 0 24px}
