.vp-empty{text-align:center;padding:32px 16px}.vp-empty-icon{background:var(--s-rose-light);border-radius:50%;margin-bottom:12px;padding:16px;display:inline-flex}.vp-empty-title{color:var(--s-text);font-size:15px;font-weight:700}.vp-empty-desc{color:var(--s-text-sub);margin-top:4px;font-size:13px}.vp-tab-btn{color:var(--s-text-sub);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;justify-content:center;align-items:center;gap:6px;min-width:0;margin-bottom:-2px;padding:14px 16px;font-size:13px;font-weight:600;transition:color .2s;display:flex;position:relative}.vp-tab-btn.active{color:var(--s-rose);border-bottom-color:var(--s-rose);font-weight:700}.vp-tab-btn:not(.active):hover{color:var(--s-text);background:var(--s-rose-light)}.vp-tab-btn svg{flex-shrink:0;width:18px;height:18px}.vp-tab-btn .vp-tab-count{text-align:center;border-radius:10px;min-width:20px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.3}.vp-tab-btn.active .vp-tab-count{background:var(--s-rose);color:#fff}.vp-tab-btn:not(.active) .vp-tab-count{background:var(--s-card-border);color:var(--s-text-muted)}::-webkit-scrollbar{display:none}.vp-booking-modal{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=768px){.vp-booking-modal{align-items:center}}.vp-booking-modal-card{background:var(--s-card);border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:480px;height:85dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 -8px 32px #0003}.vp-booking-overlay{z-index:40;background:color-mix(in srgb, var(--s-card) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:inherit;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}@media (width>=768px){.vp-booking-modal-card{border-radius:24px;max-height:80dvh}}.vp-booking-modal.vp-modal-centered{align-items:center}.vp-booking-modal.vp-modal-centered .vp-booking-modal-card{border-radius:24px;box-shadow:0 8px 40px #00000040}.cart-toast{z-index:9999;-webkit-backdrop-filter:blur(12px);color:#fff;pointer-events:none;-webkit-user-select:none;user-select:none;background:#10b981f2;border-radius:18px;align-items:center;gap:.75rem;padding:.85rem 1.2rem;font-size:.95rem;font-weight:700;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #10b98147,inset 0 1px #fff3}.cart-toast__icon{background:#ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}@media (width<=640px){.cart-toast{justify-content:center;width:calc(100% - 32px);font-size:.9rem}}.floating-cart{left:14px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:90;background:linear-gradient(135deg, var(--s-rose), var(--s-rose-dark));color:#fff;border-radius:14px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:all .25s;display:flex;position:fixed;box-shadow:0 8px 24px #e8a49047}.floating-cart:hover{transform:translateY(-2px)}.floating-cart__icon{background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.floating-cart__badge{width:18px;height:18px;font-size:10px}.floating-cart__content small{display:none}.floating-cart__content strong{font-size:13px}.floating-cart__arrow{display:none}@keyframes bounce-in{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.animate-bounce-in{animation:.4s cubic-bezier(.68,-.55,.265,1.55) forwards bounce-in}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:.8s linear infinite spin}@media (width<=640px){button.touch-manipulation{touch-action:manipulation;min-width:32px;min-height:32px;padding:6px 12px;font-size:11px}}@keyframes vp-suspended-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.vp-suspended-banner{animation:3s ease-in-out infinite vp-suspended-float}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.rv-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#c77a5f,#e8a490);border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 28px;font-size:14px;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 4px 14px #c77a5f4d}.rv-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #c77a5f66}.rv-btn-primary:active:not(:disabled){transform:translateY(0)}.rv-btn-loading{opacity:.6;cursor:not-allowed;box-shadow:none}.rv-btn-secondary{background:var(--s-card);color:var(--s-text-sub);border:1.5px solid var(--s-card-border);cursor:pointer;border-radius:12px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s}.rv-btn-secondary:hover{border-color:#c77a5f}.rv-star{cursor:pointer;color:#d1d5db;background:0 0;border:none;padding:2px;font-size:32px;transition:all .15s}.rv-star:hover{transform:scale(1.2)}.rv-star.active{color:#f59e0b}.rv-textarea{border:1.5px solid var(--s-card-border);background:var(--s-card);width:100%;color:var(--s-text);resize:vertical;border-radius:12px;outline:none;padding:12px 14px;font-size:14px;transition:border-color .2s}.rv-textarea:focus{border-color:#c77a5f}.vendor-about{max-height:120px;color:var(--s-text-sub);font-size:13px;line-height:1.8;transition:max-height .35s;position:relative;overflow:hidden}.vendor-about:after{content:"";pointer-events:none;opacity:1;background:linear-gradient(#fff0 0%,#ffffff0f 20%,#ffffff2e 40%,#ffffff6b 60%,#ffffffb8 80%,#fff 100%);height:90px;transition:opacity .35s;position:absolute;bottom:0;left:0;right:0}.dark .vendor-about:after{background:linear-gradient(#28282800 0%,#2828280f 20%,#2828282e 40%,#2828286b 60%,#6c4e443b 80%,#463630 100%)}.about-toggle{color:var(--s-rose-dark);cursor:pointer;font-size:13px;transition:color .25s}.about-toggle:hover{color:var(--s-rose)}.vendor-about.expanded{max-height:1000px}.vendor-about.expanded:after{opacity:0}
