/* Reserva screen (replica S-RES-01..04). Sizes follow the mobile reference at 390 CSS px width. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rv{--rv-field:#1a1a1e;--rv-card:#18181c;--rv-line:#2d2d33;--rv-badge-bg:#3a2f1f;--rv-soft:var(--accent);--rv-caps:#b2b2ba;--rv-apply:var(--accent);max-width:560px;margin:0 auto;padding-bottom:24px;color:var(--text)}
body.light .rv{--rv-field:#f3f3f5;--rv-card:#fff;--rv-line:#e2e2e7;--rv-badge-bg:#f5e9d6;--rv-soft:var(--rv-badge-bg);--rv-caps:var(--muted);--rv-apply:#ffd08a}
.rv .icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rv button{font:inherit;color:inherit;cursor:pointer}
.rv button:disabled{cursor:not-allowed}
.rv :focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.rv-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:2px 0 58px}
.rv-head h1{margin:0;text-align:center;font-size:17px;font-weight:500;color:#d7d7dc;letter-spacing:0}
body.light .rv-head h1{color:var(--text)}
.rv-circle{width:24px;height:24px;border-radius:50%;border:1.5px solid #8a8a92;background:none;display:grid;place-items:center;padding:0}
/* The header's circles are drawn at 22 px, as in the reference; the button around them is 24 px for touch (WCAG 2.5.8). */
.rv-head .rv-circle{margin:-1px;border:0}
.rv-head .rv-circle::before{content:"";grid-area:1/1;width:22px;height:22px;border-radius:50%;border:1.5px solid #8a8a92}
.rv-head .rv-circle>*{grid-area:1/1}
.rv-head .rv-circle:last-child{justify-self:end}
.rv-head .rv-circle:last-child::before{border-color:var(--rv-line)}
.rv-head .rv-circle[aria-pressed=true]{color:var(--accent)}
.rv-head .rv-circle[aria-pressed=true]::before{border-color:var(--accent)}
.rv-circle .icon{width:12px;height:12px}

.rv-card{background:var(--rv-card);border:1px solid var(--rv-line);border-radius:12px}
.rv-event{display:flex;align-items:center;gap:13px;padding:9px 13px;margin-bottom:38px}
.rv-thumb{flex:none;width:44px;height:44px;border-radius:7px;display:grid;place-items:center;font-weight:700;font-size:15px;color:#141416;background:linear-gradient(135deg,#d6edc9,#7fae6a)}
.rv-thumb.theme-violet{background:linear-gradient(135deg,#c4bcff,#7d6ad6)}.rv-thumb.theme-amber{background:linear-gradient(135deg,#ffe2a6,#d39a3f)}.rv-thumb.theme-blue{background:linear-gradient(135deg,#bfe3ff,#4f8fca)}
.rv-event strong{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em}
.rv-event small{display:block;margin-top:3px;font-size:12.5px;color:var(--muted)}

.rv-plan{padding:12px 12px 12px;margin-bottom:22px}
.rv-plan h2{margin:4px 0 14px;text-align:center;font-size:14px;font-weight:500;letter-spacing:.02em}
.rv-map-wrap{position:relative;border:1px solid #6a5e4b;border-radius:10px;overflow:auto;background:#0d0d0f}
.rv-map{position:relative;aspect-ratio:3/3.6;min-width:100%;background:radial-gradient(#ffffff0d 1px,transparent 1px) 0 0/6px 6px,#111113;transition:min-width .2s}
.rv-map.zoom{min-width:170%}
.rv-floor{position:absolute;left:26%;right:24%;top:28%;bottom:30%;background:#3a3a3d;display:grid;place-items:center;font-size:10px;letter-spacing:.18em;color:#e6e6e6}
.rv-bar{position:absolute;width:20%;height:12%;border:4px solid #e9e9e9;display:grid;place-items:center;font-size:9px;letter-spacing:.14em;color:#e9e9e9;background:#2c2c2f}
.rv-bar.b1{left:9%;bottom:2%}.rv-bar.b2{right:5%;bottom:14%;height:9%}
.rv-dj{position:absolute;right:13%;top:45%;width:10%;height:12%;display:grid;place-items:center;font-size:10px;letter-spacing:.1em;color:#e6e6e6;border:1px solid #6b6b6b}
.rv-spot{position:absolute;border:0;padding:0;background:var(--zone);border-radius:2px;color:#f4f4f5;font-size:8.5px;font-weight:600}
.rv-spot.h{width:9%;height:3.4%}.rv-spot.v{width:4%;height:7%}
/* Shapes of spaces created in the zone editor (W-011); the plan is 3:3.6, so 6% wide is 5% high for a circle. */
.rv-spot.round{width:6%;height:5%;border-radius:50%}
.rv-spot.square{width:6%;height:5%}
.rv-spot.long{width:12%;height:4%}
.rv-spot span{position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%)}
.rv-spot.v span{left:auto;right:calc(100% + 3px);top:50%;transform:translateY(-50%)}
.rv-spot.sel{outline:2px solid #fff;outline-offset:2px}
.rv-spot:disabled{opacity:.28}
.rv-zoom{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;border:0;background:#0b0b0d;display:grid;place-items:center;color:#fff;box-shadow:0 2px 10px #0008}.rv .rv-zoom{color:#fff}

.rv-group{margin-bottom:24px}
.rv-group-head{display:grid;grid-template-columns:auto 54px 1fr auto;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--rv-line);margin-left:0}
.rv-count{font-size:15px;font-weight:500}
.rv-group-art .icon{width:54px;height:40px;stroke-width:1}
.rv-group-head strong{display:block;font-size:15px;font-weight:500}
.rv-group-head small{display:block;margin-top:9px;font-size:13px;color:var(--muted)}
.rv-group-head b{align-self:end;font-size:15px;font-weight:600}
.rv-group-head{border-bottom-color:transparent;position:relative}
.rv-group-head::after{content:"";position:absolute;left:59px;right:0;bottom:0;border-bottom:1px solid var(--rv-line)}
.rv-table{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;margin:17px 0 0 59px;padding:12px 14px 12px 12px;background:var(--rv-card);border:1px solid var(--rv-line);border-radius:12px}
.rv-table-icon{padding-top:20px;color:#bdbdc4}.rv-table-icon .icon{width:24px;height:22px;stroke-width:1.2}
.rv-table-top{display:flex;justify-content:space-between;align-items:center}
.rv-select{position:relative;display:inline-flex;align-items:center;min-width:0}
.rv-table-top .rv-select select{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-table-top{gap:8px}
.rv-select select,.rv-prefix select{appearance:none;font:inherit;color:inherit;background:var(--rv-field);border:1px solid var(--field-line);border-radius:7px;height:29px;min-height:0;padding:0 30px 0 11px;font-size:15px;font-weight:500;line-height:1}
.rv-select .icon,.rv-prefix .icon{position:absolute;right:9px;width:13px;height:13px;pointer-events:none}
.rv-people{display:flex;align-items:center;gap:8px;margin-top:6px}
.rv-label{font-size:10.5px;letter-spacing:.02em;color:var(--muted)}
.rv-stepper{display:flex;align-items:center;border:1px solid var(--rv-line);border-radius:6px;background:var(--rv-field);height:27px}
.rv-stepper button{width:24px;height:100%;border:0;background:none;font-size:16px}
.rv-stepper button:disabled{opacity:.3}
.rv-stepper output{min-width:22px;text-align:center;font-size:14px;font-weight:500}
.rv-price{display:grid;justify-items:end;gap:3px;margin:6px 0 5px}
.rv-price strong{font-size:15px;font-weight:600}
.rv-price span{display:flex;align-items:center;gap:6px;font-size:13px;color:#d6d6db}
body.light .rv-price span{color:var(--muted)}
.rv-badge{background:var(--rv-badge-bg);color:var(--accent);font-size:9.5px;font-weight:600;letter-spacing:.09em;padding:3px 6px;border-radius:4px}
body.light .rv-badge{color:#5d3e0f}
.rv-badge.rv-soft{background:var(--rv-soft);color:#261e13;padding:2px 6px}
.rv-rate{display:grid;justify-items:end;gap:3px;margin:-1px 0 9px;font-size:11.5px;color:var(--muted);text-align:right}
.rv-deposit{display:flex;align-items:center;gap:6px;margin-top:3px;color:var(--text)}
.rv-deposit input{width:86px;height:29px;min-height:0;padding:0 8px;border:1px solid var(--field-line);border-radius:7px;background:var(--rv-field);color:var(--text);font-size:13px;text-align:right}
.rv-conditions{margin:3px 0 0;max-width:100%;font-size:11px;line-height:1.35;text-align:left;justify-self:stretch;white-space:pre-line}
.rv-dashed{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:31px;border:1px dashed #44444b;border-radius:9px;background:none;font-size:13px;color:#d8d8dd;margin-bottom:10px}
body.light .rv-dashed{color:var(--text);border-color:#c4c4cc}
.rv-dashed.on{border-style:solid;border-color:var(--accent);color:var(--accent)}
.rv-dashed.rv-pill{width:auto;padding:0 13px;border-radius:999px;margin-bottom:0}
.rv-dashed .icon{width:15px;height:15px}
.rv-dashed.rv-pill .icon{fill:#9f8c6f;stroke:#141416}
.rv-empty{text-align:center;color:var(--muted);font-size:14px;margin:6px 0 20px}

.rv-add-wrap{display:flex;justify-content:center;padding:38px 0 34px;border-top:1px solid var(--rv-line);border-bottom:1px solid var(--rv-line);margin-top:30px}
.rv-add{display:flex;align-items:center;gap:9px;height:37px;padding:0 24px;border:1.5px solid #e8d5b8;border-radius:999px;background:none;font-size:15px;font-weight:500;color:#efdfc6}
body.light .rv-add{color:#5d3e0f;border-color:#cdad7c}
.rv-add .icon{fill:#e8d5b8;stroke:#141416;width:17px;height:17px}

.rv-form{margin-top:24px}
.rv-caps{margin:28px 0 0;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--rv-caps)}
.rv-field{display:block;margin-bottom:5px;font-size:13.5px}
.rv-field span{font-size:11px;color:var(--muted)}
.rv-field i{font-style:normal;color:var(--muted)}
.rv-field input,.rv-field select,.rv-field textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;font:inherit;font-size:15px;color:var(--text);background:var(--rv-field);border:1px solid var(--field-line);border-radius:12px;height:53px;padding:0 22px}

.rv-field input::placeholder,.rv-field textarea::placeholder{color:var(--placeholder)}
.rv-field textarea{height:63px;padding:14px 28px;resize:vertical}
.rv-phone{display:flex;margin-top:6px;border:1px solid var(--field-line);border-radius:12px;overflow:hidden;height:53px}
.rv-phone input{margin:0;border:0;border-radius:0;height:100%;padding-left:11px}
.rv-prefix{position:relative;display:flex;align-items:center;border-right:1px solid var(--rv-line);background:var(--rv-field)}
.rv-prefix select{height:100%;border:0;border-radius:0;padding:0 30px 0 9px;font-size:13px;width:82px}
.rv-linked{display:flex;align-items:center;gap:6px;margin:-8px 0 14px;font-size:12px;color:var(--accent)}.rv-linked .icon{width:14px;height:14px}
.rv-arrival{margin-top:19px}
.rv-time{text-align:center;font-size:15px!important}
.rv-sum{margin:34px 0 0}
.rv-sum div{display:flex;justify-content:space-between;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--rv-line)}
.rv-sum dt{font-size:14px}
.rv-sum dd{margin:0;font-size:15.5px;font-weight:700}
.rv-sum .big dd{font-size:21px;font-weight:700}
.rv-sum .muted dd{font-size:20px;font-weight:400;color:var(--muted)}
.rv-error{min-height:18px;margin:12px 0 4px;color:var(--danger);font-size:13px}
.rv-cta{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;border:0;border-radius:999px;background:#f8e9d3;color:#141416!important;font-size:15.5px;font-weight:600}
.rv-cta:disabled{opacity:.45}
.rv-note{margin:10px 4px 0;font-size:12px;color:var(--muted);text-align:center}

.rv-scrim{position:fixed;inset:0;border:0;background:#000a;z-index:60}
.rv-sheet{position:fixed;left:0;right:0;bottom:0;max-height:calc(100vh - 64px);display:flex;flex-direction:column;background:#1b1b1f;border-radius:17px 17px 0 0;z-index:61}
/* Slides in only when it opens; the screen re-renders on every tap and must not replay it. */
.rv-sheet.enter{animation:rv-up .22s ease-out}
body.light .rv-sheet{background:#fff}
@media(min-width:851px){.rv-sheet{left:50%;width:560px;transform:translateX(-50%);border-radius:17px 17px 0 0}}
@keyframes rv-up{from{translate:0 40px;opacity:.4}}
.rv-sheet header{position:relative;text-align:center;padding:21px 50px 9px;border-bottom:1px solid var(--rv-line)}
.rv-sheet h2{margin:0;font-size:18px;font-weight:600}
.rv-sheet p{margin:10px -24px 0;font-size:12.5px;line-height:1.4;color:var(--muted)}
.rv-sheet header .rv-circle{position:absolute;right:15px;top:13px;width:30px;height:30px;border:0;background:#2e2e33}
body.light .rv-sheet header .rv-circle{background:#ececf0}
.rv-sheet ul{list-style:none;margin:0;padding:0 18px;overflow:auto}
.rv-sheet-row{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:10px 0;line-height:1.2;border-bottom:1px solid var(--rv-line)}
.rv-sheet-row > .icon{width:28px;height:24px;stroke-width:1.1}
.rv-sheet-row strong{display:block;font-size:14.5px;font-weight:500}
.rv-sheet-row small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.rv-combo-add{flex:none;height:30px;padding:0 12px;border:1px solid var(--rv-line);border-radius:999px;background:none;color:var(--text);font-size:12.5px;font-weight:600}
.rv-combo-add:disabled{opacity:.6;cursor:not-allowed}
.rv-combo-note{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:12px;color:var(--muted)}
.rv-combo-note .icon{width:13px;height:13px}
.rv-sheet-row small.rv-full{color:var(--text);font-weight:600}
.rv-sheet-pre{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:13px;font-weight:500}
.rv-round{display:flex;align-items:center;gap:12px}
.rv-round button{width:29px;height:29px;border-radius:50%;border:1.2px solid #ffd08a;background:none;font-size:15px;display:grid;place-items:center}
.rv-round button:disabled{border-color:#5b4f3e;color:#55555c}
.rv-round output{min-width:10px;text-align:center;font-size:15px;font-weight:600}
.rv-sheet footer{padding:13px 18px max(18px,env(safe-area-inset-bottom));border-top:1px solid var(--rv-line)}
.rv-apply{width:100%;height:41px;border:0;border-radius:999px;background:var(--rv-apply);color:#141416!important;font-size:14px;font-weight:600;letter-spacing:.14em}
.rv-apply:disabled{background:#5f7470}

@media(max-width:850px){.page-reservation .topbar{display:none}.page-reservation .content{padding-top:max(24px,env(safe-area-inset-top))}}
@media(prefers-reduced-motion:reduce){.rv-sheet.enter{animation:none}.rv-map{transition:none}}
.rv-consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0 4px;font-size:13.5px;line-height:1.4}
.rv-consent input{margin-top:2px;width:18px;height:18px;flex:none}
.rv-consent span{color:var(--muted);font-size:11px}
.rv-consent-help{margin:0 0 6px 28px;font-size:11.5px;color:var(--muted)}
/* Rate per table and extra client data (W-010, U-010) */
.rv-rate-pick{display:flex;align-items:center;gap:10px;margin:10px 0 0}
.rv-rate-pick .icon{right:9px}
/* Floor plan image (W-011, U-013) */
.rv-map.has-plan{background:var(--plan) center/contain no-repeat,#111113}
.rv-map.has-plan .rv-floor,.rv-map.has-plan .rv-bar,.rv-map.has-plan .rv-dj{display:none}
.rv-map.has-plan .rv-spot span{background:#111113;color:#f4f4f5;padding:0 2px;border-radius:2px;line-height:1.3}
.rv-map.has-plan .rv-spot:focus-visible{box-shadow:0 0 0 3px #111113,0 0 0 6px var(--accent);outline:0}
