.desktop-booking .page-layout{grid-template-columns:minmax(0,1fr) 380px;gap:32px;margin-top:32px;margin-bottom:64px;display:grid}@media (max-width:1100px){.desktop-booking .page-layout{grid-template-columns:minmax(0,1fr);gap:24px}}.desktop-booking .section-card{background:var(--bg-card);border-radius:var(--radius-3xl);border:1px solid var(--border-color);box-shadow:var(--shadow-card);margin-bottom:24px;transition:all .3s;overflow:hidden}.desktop-booking .section-card:hover{box-shadow:var(--shadow-card);border-color:#e5e7eb}.desktop-booking .section-head{align-items:center;gap:12px;padding:24px 24px 0;display:flex}.desktop-booking .section-head-icon{background:var(--sipo-red-light);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.desktop-booking .section-head h2{color:var(--text-1);font-size:20px;font-weight:700}.desktop-booking .section-body{padding:24px}.desktop-booking .step-indicator{justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 5px;display:flex}.desktop-booking .step-item{z-index:2;align-items:center;gap:8px;display:flex;position:relative}.desktop-booking .step-dot{color:#9ca3af;background:#f3f4f6;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:800;transition:all .3s;display:flex}.desktop-booking .step-item.active .step-dot,.desktop-booking .step-item.done .step-dot{background:var(--sipo-red);color:#fff}.desktop-booking .step-item span{color:#9ca3af;white-space:nowrap;font-size:11px;font-weight:700}.desktop-booking .step-item.active span{color:#374151}.desktop-booking .step-line{background:#e5e7eb;flex:1;height:1px;margin:0 8px}.desktop-booking .step-line.active{background:var(--sipo-red)}.desktop-booking .field-group{margin-bottom:24px}.desktop-booking .field-label{color:var(--text-2);margin-bottom:12px;font-size:14px;font-weight:600;display:block}.desktop-booking .form-input,.desktop-booking .form-textarea{border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;color:var(--text-1);background:#fff;padding:12px 16px;font-family:inherit;font-size:16px;font-weight:500;transition:all .2s}.desktop-booking .form-input:focus,.desktop-booking .form-textarea:focus{border-color:var(--sipo-red);box-shadow:0 0 0 4px var(--sipo-red-light);outline:none}.desktop-booking .input-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.desktop-booking .reservation-date-label{color:#4b5563;align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.desktop-booking .reservation-date-box{background:#fff;border:1px solid #f3f4f6;border-radius:20px;align-items:center;margin-bottom:24px;padding:18px 20px;display:flex;box-shadow:0 2px 10px #00000005}.desktop-booking .res-date-icon{color:var(--sipo-red);align-items:center;margin-right:12px;display:flex}.desktop-booking .res-date-value{color:#1f2937;font-size:16px;font-weight:600}.desktop-booking .date-scroll{scrollbar-width:none;-ms-overflow-style:none;gap:12px;padding-bottom:12px;display:flex;overflow-x:auto}.desktop-booking .date-scroll::-webkit-scrollbar{display:none}.desktop-booking .date-chip{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;align-items:center;min-width:60px;padding:12px 0;transition:all .2s;display:flex}.desktop-booking .date-chip.selected{background:var(--sipo-red);border-color:var(--sipo-red);color:#fff}.desktop-booking .dc-day{text-transform:uppercase;color:var(--text-3);margin-bottom:2px;font-size:9px;font-weight:900}.desktop-booking .dc-num{color:var(--text-1);font-size:15px;font-weight:900}.desktop-booking .dc-mon{color:var(--text-3);font-size:9px;font-weight:800}.desktop-booking .date-chip.selected .dc-day,.desktop-booking .date-chip.selected .dc-num,.desktop-booking .date-chip.selected .dc-mon{color:#fff}.desktop-booking .guest-stepper{background:var(--bg-app);border-radius:var(--radius-lg);align-items:center;gap:20px;width:fit-content;padding:6px;display:flex}.desktop-booking .gs-btn{cursor:pointer;width:36px;height:36px;color:var(--text-2);background:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.desktop-booking .gs-btn:hover{background:var(--sipo-red);color:#fff}.desktop-booking .gs-val{text-align:center;min-width:20px;font-size:18px;font-weight:700}.desktop-booking .guest-hint{color:var(--text-3);margin-top:10px;font-size:13px}.desktop-booking .time-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;display:grid}.desktop-booking .time-chip{border-radius:var(--radius-xl);border:1px solid var(--border-color);text-align:center;cursor:pointer;background:#fff;padding:12px;font-size:13px;font-weight:700;transition:all .2s}.desktop-booking .time-chip.selected{color:#fff;background:#000;border-color:#000}.desktop-booking .time-legend{color:var(--text-3);gap:16px;margin-top:16px;font-size:12px;display:flex}.desktop-booking .legend-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.desktop-booking .time-empty{text-align:center;color:var(--text-3);background:var(--bg-app);border-radius:var(--radius-xl);border:1px dashed var(--border-color);padding:20px}.desktop-booking .btn-primary{color:#fff;border-radius:var(--radius-2xl);cursor:pointer;background:#000;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:16px;font-size:15px;font-weight:700;display:flex}.desktop-booking .btn-secondary{background:var(--bg-app);color:var(--text-2);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:12px;padding:12px 20px;font-weight:600;display:flex}.desktop-booking .success-panel{padding:10px 0;display:none}.desktop-booking .success-panel.active{display:block}.desktop-booking .success-hero{text-align:center;margin-bottom:32px}.desktop-booking .sh-icon-wrap{width:80px;height:80px;margin:0 auto 24px;position:relative}.desktop-booking .sh-icon-bg{background:linear-gradient(135deg, #e8362a33, var(--sipo-red));border-radius:24px;position:absolute;inset:0;box-shadow:0 10px 30px #e8362a33}.desktop-booking .sh-icon-inner{background:var(--sipo-red);color:#fff;z-index:2;border-radius:20px;justify-content:center;align-items:center;display:flex;position:absolute;inset:8px;box-shadow:inset 0 2px 10px #0000001a}.desktop-booking .sh-title{color:var(--text-1);letter-spacing:-.02em;margin-bottom:8px;font-size:32px;font-weight:900}.desktop-booking .sh-subtitle{color:var(--text-3);max-width:80%;margin:0 auto;font-size:16px;font-weight:500;line-height:1.5}.desktop-booking .success-details-card{color:#fff;background:#111827;border-radius:32px;margin-bottom:32px;padding:32px;position:relative;overflow:hidden;box-shadow:0 20px 40px #0000001a}.desktop-booking .sdc-bg-glow{filter:blur(40px);background:#ffffff0d;border-radius:50%;width:150px;height:150px;position:absolute;top:-50px;right:-50px}.desktop-booking .sdc-content{z-index:2;position:relative}.desktop-booking .sdc-header{justify-content:space-between;align-items:flex-start;margin-bottom:32px;display:flex}.desktop-booking .sdc-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.2em;margin-bottom:6px;font-size:11px;font-weight:900}.desktop-booking .sdc-ref{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:36px;font-weight:900;line-height:1}.desktop-booking .sdc-status-badge{color:#10b981;text-transform:uppercase;letter-spacing:.1em;background:#10b98126;border-radius:100px;align-items:center;gap:6px;padding:8px 16px;font-size:11px;font-weight:900;display:flex;box-shadow:0 2px 10px #10b9811a}.desktop-booking .sdc-status-dot{background:#10b981;border-radius:50%;width:8px;height:8px}.desktop-booking .sdc-grid{border-top:1px solid #ffffff1a;grid-template-columns:repeat(3,1fr);gap:24px;padding-top:24px;display:grid}.desktop-booking .sdc-grid-label{color:#6b7280;text-transform:uppercase;letter-spacing:.2em;margin-bottom:8px;font-size:10px;font-weight:900}.desktop-booking .sdc-grid-val{color:#f9fafb;font-size:15px;font-weight:700}.desktop-booking .success-actions{gap:16px;display:flex}.desktop-booking .sa-btn-primary{background:var(--sipo-red);color:#fff;cursor:pointer;border:none;border-radius:20px;flex:1;justify-content:center;align-items:center;gap:10px;padding:18px;font-size:15px;font-weight:800;transition:all .2s;display:flex;box-shadow:0 10px 25px #e8362a40}.desktop-booking .sa-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px #e8362a59}.desktop-booking .sa-btn-secondary{color:var(--text-1);border:2px solid var(--border-color);cursor:pointer;background:#fff;border-radius:20px;flex:1;justify-content:center;align-items:center;gap:10px;padding:18px;font-size:15px;font-weight:800;transition:all .2s;display:flex}.desktop-booking .sa-btn-secondary:hover{border-color:var(--text-1);background:#f9fafb;transform:translateY(-2px)}.animate-scale-in{animation:.5s cubic-bezier(.16,1,.3,1) forwards scaleIn}.animate-bounce-in{opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) .2s forwards bounceIn}.animate-slide-up{opacity:0;animation:.5s ease-out forwards slideUp}.animate-fade-in-delayed{opacity:0;animation:.5s ease-out .3s forwards fadeIn}.animate-pulse-soft{animation:2s ease-in-out infinite pulseSoft}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseSoft{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}.desktop-booking .info-cards-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px;display:grid}.desktop-booking .info-card{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;transition:transform .2s;display:flex;box-shadow:0 4px 20px #0000000a}.desktop-booking .info-card:hover{border-color:var(--sipo-red-light);transform:translateY(-4px)}.desktop-booking .info-card-icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.desktop-booking .info-card-label{color:#4b5563;font-size:14px;font-weight:700}.desktop-booking .info-card-icon.blue{color:#3b82f6;background:#eff6ff}.desktop-booking .info-card-icon.emerald{color:#10b981;background:#ecfdf5}.desktop-booking .info-card-icon.orange{color:#f97316;background:#fff7ed}.desktop-booking .info-card-icon.red{color:#ef4444;background:#fef2f2}.desktop-booking .booking-sidebar{flex-direction:column;gap:24px;display:flex}.desktop-booking .sidebar-card{top:calc(var(--header-height) + 20px);position:sticky}.desktop-booking .reservation-card{border:1px solid var(--border-color);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 4px 30px #0000000f}.desktop-booking .reservation-card-head{border-bottom:1px solid var(--border-color);align-items:center;gap:14px;padding:20px 24px;display:flex}.desktop-booking .reservation-icon-wrap{width:44px;height:44px;color:var(--primary);background:linear-gradient(135deg,#e8553e1f,#e8553e0a);border-radius:14px;justify-content:center;align-items:center;display:flex}.desktop-booking .reservation-card-title{color:var(--text-1);margin:0;font-size:16px;font-weight:800}.desktop-booking .reservation-card-sub{color:var(--text-3);text-transform:uppercase;margin:2px 0 0;font-size:11px;font-weight:600}.desktop-booking .reservation-card-body{padding:20px 24px}.desktop-booking .reservation-empty{text-align:center;padding:24px 16px}.desktop-booking .reservation-empty-icon{width:56px;height:56px;color:var(--text-4);background:#9ca3af1a;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.desktop-booking .reservation-empty-text{color:var(--text-3);font-size:13px;font-weight:500}.desktop-booking .reservation-success-badge{background:#10b98114;border:1px solid #10b9811f;border-radius:16px;align-items:center;gap:14px;padding:16px;display:flex}.desktop-booking .reservation-success-icon{width:40px;height:40px;color:var(--green);background:#10b98126;border-radius:12px;justify-content:center;align-items:center;display:flex}.desktop-booking .reservation-success-title{color:var(--green);font-size:15px;font-weight:800}.desktop-booking .reservation-details{flex-direction:column;gap:4px;display:flex}.desktop-booking .res-detail-row{border-radius:14px;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.desktop-booking .res-detail-icon-wrap{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.desktop-booking .res-detail-icon-wrap.orange{color:#f97316;background:#f973161f}.desktop-booking .res-detail-icon-wrap.blue{color:#3b82f6;background:#3b82f61f}.desktop-booking .res-detail-icon-wrap.emerald{color:#10b981;background:#10b9811f}.desktop-booking .res-detail-icon-wrap.purple{color:#a855f7;background:#a855f71f}.desktop-booking .res-detail-content{flex-direction:column;display:flex}.desktop-booking .res-detail-label{color:var(--text-3);text-transform:uppercase;font-size:10px;font-weight:700}.desktop-booking .res-detail-value{color:var(--text-1);font-size:14px;font-weight:700}.desktop-booking .reservation-card-footer{border-top:1px solid var(--border-color);padding:16px 24px 24px}.desktop-booking .trust-badges{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.desktop-booking .trust-item{color:var(--text-3);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.desktop-booking .sidebar-cta-btn{border-radius:14px;padding:14px;font-size:14px;box-shadow:0 6px 20px #0000001f}.desktop-booking .powered-by-sipo{text-align:center;color:var(--text-4);margin-top:16px;font-size:11px;font-weight:600}.desktop-booking .powered-by-sipo a{color:var(--primary);justify-content:center;align-items:center;gap:6px;margin-top:4px;font-weight:700;text-decoration:none;display:flex}.desktop-booking .powered-by-logo{width:auto;height:18px}.desktop-booking .err-msg{color:var(--sipo-red);margin-top:4px;font-size:12px;font-weight:500;display:none}.desktop-booking .form-input.err{border-color:var(--sipo-red);background:var(--sipo-red-light)}.desktop-booking .more-dates-chip{border-color:var(--border-color)!important;color:var(--text-2)!important;background:#f9fafb!important}.desktop-booking .calendar-picker{border:1px solid var(--border-color);background:#fff;border-radius:20px;max-width:360px;margin-top:12px;padding:20px;box-shadow:0 10px 30px #00000014}.desktop-booking .calendar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.desktop-booking .calendar-month-label{font-size:16px;font-weight:800}.desktop-booking .calendar-nav-btn{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.desktop-booking .calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.desktop-booking .calendar-day-header{text-align:center;color:var(--text-4);padding-bottom:8px;font-size:11px;font-weight:800}.desktop-booking .calendar-day{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.desktop-booking .calendar-day:hover:not(.past):not(.empty){background:#f9fafb}.desktop-booking .calendar-day.selected{background:var(--sipo-red);color:#fff}.desktop-booking .calendar-day.past{opacity:.2;cursor:not-allowed}.desktop-booking .calendar-day.today:not(.selected){color:var(--sipo-red)}.desktop-booking .selection-summary-box{border:1px solid var(--border-color);background:#fff;border-radius:20px;flex-direction:column;gap:12px;margin-top:16px;padding:20px;display:flex;box-shadow:0 4px 15px #00000005}.desktop-booking .selection-item{align-items:center;gap:12px;display:flex}.desktop-booking .si-icon{background:var(--sipo-red-light);width:40px;height:40px;color:var(--sipo-red);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-booking .si-content{flex-direction:column;display:flex}.desktop-booking .si-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.desktop-booking .si-value{color:var(--text-1);font-size:18px;font-weight:800}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.mobile-booking .page-layout{grid-template-columns:minmax(0,1fr) 380px;gap:32px;margin-top:32px;margin-bottom:64px;display:grid}@media (max-width:1100px){.mobile-booking .page-layout{grid-template-columns:minmax(0,1fr);gap:24px}}.mobile-booking .section-card{background:var(--bg-card);border-radius:var(--radius-3xl);border:1px solid var(--border-color);box-shadow:var(--shadow-card);margin-bottom:24px;transition:all .3s;overflow:hidden}.mobile-booking .section-card:hover{box-shadow:var(--shadow-card);border-color:#e5e7eb}.mobile-booking .section-head{align-items:center;gap:12px;padding:24px 24px 0;display:flex}.mobile-booking .section-head-icon{background:var(--sipo-red-light);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.mobile-booking .section-head h2{color:var(--text-1);font-size:20px;font-weight:700}.mobile-booking .section-body{padding:24px}.mobile-booking .step-indicator{justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 5px;display:flex}.mobile-booking .step-item{z-index:2;align-items:center;gap:8px;display:flex;position:relative}.mobile-booking .step-dot{color:#9ca3af;background:#f3f4f6;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:800;transition:all .3s;display:flex}.mobile-booking .step-item.active .step-dot,.mobile-booking .step-item.done .step-dot{background:var(--sipo-red);color:#fff}.mobile-booking .step-item span{color:#9ca3af;white-space:nowrap;font-size:11px;font-weight:700}.mobile-booking .step-item.active span{color:#374151}.mobile-booking .step-line{background:#e5e7eb;flex:1;height:1px;margin:0 8px}.mobile-booking .step-line.active{background:var(--sipo-red)}.mobile-booking .field-group{margin-bottom:24px}.mobile-booking .field-label{color:var(--text-1);letter-spacing:-.01em;align-items:center;gap:10px;margin-bottom:14px;font-size:15px;font-weight:700;display:flex}.mobile-booking .field-label-num{background:var(--sipo-red-light);width:22px;height:22px;color:var(--sipo-red);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.mobile-booking .form-input,.mobile-booking .form-textarea{border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;color:var(--text-1);background:#fff;padding:12px 16px;font-family:inherit;font-size:16px;font-weight:500;transition:all .2s}.mobile-booking .form-input:focus,.mobile-booking .form-textarea:focus{border-color:var(--sipo-red);box-shadow:0 0 0 4px var(--sipo-red-light);outline:none}.mobile-booking .input-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.mobile-booking .reservation-date-box{background:#fff;border:1px solid #f3f4f6;border-radius:20px;align-items:center;margin-bottom:24px;padding:18px 20px;display:flex;box-shadow:0 2px 10px #00000005}.mobile-booking .res-date-icon{color:var(--sipo-red);align-items:center;margin-right:12px;display:flex}.mobile-booking .res-date-value{color:#1f2937;font-size:16px;font-weight:600}.mobile-booking .date-scroll{scrollbar-width:none;-ms-overflow-style:none;gap:12px;padding-bottom:12px;display:flex;overflow-x:auto}.mobile-booking .date-scroll::-webkit-scrollbar{display:none}.mobile-booking .date-chip{appearance:none;font:inherit;color:inherit;text-align:center;border:1px solid var(--border-color);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:16px;flex-direction:column;align-items:center;min-width:60px;padding:12px 0;transition:all .2s;display:flex}.mobile-booking .date-chip.selected{background:var(--sipo-red);border-color:var(--sipo-red);color:#fff}.mobile-booking .dc-day{text-transform:uppercase;color:var(--text-3);margin-bottom:2px;font-size:9px;font-weight:900}.mobile-booking .dc-num{color:var(--text-1);font-size:15px;font-weight:900}.mobile-booking .dc-mon{color:var(--text-3);font-size:9px;font-weight:800}.mobile-booking .date-chip.selected .dc-day,.mobile-booking .date-chip.selected .dc-num,.mobile-booking .date-chip.selected .dc-mon{color:#fff}.mobile-booking .guest-stepper{background:var(--bg-app);border-radius:var(--radius-lg);align-items:center;gap:20px;width:fit-content;padding:6px;display:flex}.mobile-booking .gs-btn{appearance:none;font:inherit;cursor:pointer;width:36px;height:36px;color:var(--text-2);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.mobile-booking .gs-btn:hover:not(:disabled){background:var(--sipo-red);color:#fff}.mobile-booking .gs-btn:disabled{opacity:.35;cursor:not-allowed}.mobile-booking .gs-val{text-align:center;min-width:24px;color:var(--text-1);font-variant-numeric:tabular-nums;font-size:18px;font-weight:800}.mobile-booking .guest-hint{color:var(--text-3);margin-top:10px;font-size:12px;line-height:1.4}.mobile-booking .time-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;display:grid}.mobile-booking .time-chip{appearance:none;font:inherit;color:inherit;text-align:center;border-radius:var(--radius-xl);border:1px solid var(--border-color);text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;padding:12px;font-size:13px;font-weight:700;transition:all .2s}.mobile-booking .time-chip.selected{color:#fff;background:#000;border-color:#000}.mobile-booking .time-legend{color:var(--text-3);gap:16px;margin-top:16px;font-size:12px;display:flex}.mobile-booking .legend-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.mobile-booking .time-empty{text-align:center;color:var(--text-3);background:var(--bg-app);border-radius:var(--radius-xl);border:1px dashed var(--border-color);justify-content:center;align-items:center;gap:10px;padding:22px 16px;font-size:13px;font-weight:500;display:flex}.mobile-booking .time-empty-spinner{border:2px solid var(--border-color);border-top-color:var(--sipo-red);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.mobile-booking .btn-primary{appearance:none;font:inherit;text-align:center;color:#fff;border-radius:var(--radius-2xl);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#000;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:16px;font-size:15px;font-weight:700;transition:transform .15s,opacity .2s,background .2s;display:flex}.mobile-booking .btn-primary:not(:disabled):active{transform:scale(.98)}.mobile-booking .btn-primary:disabled{cursor:not-allowed;opacity:.7;box-shadow:none;background:#9ca3af}.mobile-booking .btn-secondary{appearance:none;font:inherit;text-align:center;background:var(--bg-app);color:var(--text-2);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:12px;padding:12px 20px;font-weight:600;display:flex}.mobile-booking .success-panel{padding:10px 0;display:none}.mobile-booking .success-panel.active{display:block}.mobile-booking .success-hero{text-align:center;margin-bottom:24px}.mobile-booking .sh-icon-wrap{width:72px;height:72px;margin:0 auto 20px;position:relative}.mobile-booking .sh-icon-bg{background:linear-gradient(135deg, #e8362a33, var(--sipo-red));border-radius:20px;position:absolute;inset:0;box-shadow:0 10px 30px #e8362a33}.mobile-booking .sh-icon-inner{background:var(--sipo-red);color:#fff;z-index:2;border-radius:16px;justify-content:center;align-items:center;display:flex;position:absolute;inset:6px;box-shadow:inset 0 2px 10px #0000001a}.mobile-booking .sh-title{color:var(--text-1);letter-spacing:-.02em;margin-bottom:6px;font-size:28px;font-weight:900}.mobile-booking .sh-subtitle{color:var(--text-3);max-width:90%;margin:0 auto;font-size:15px;font-weight:500;line-height:1.5}.mobile-booking .success-details-card{color:#fff;background:#111827;border-radius:24px;margin-bottom:24px;padding:24px;position:relative;overflow:hidden;box-shadow:0 20px 40px #0000001a}.mobile-booking .sdc-bg-glow{filter:blur(40px);background:#ffffff0d;border-radius:50%;width:150px;height:150px;position:absolute;top:-50px;right:-50px}.mobile-booking .sdc-content{z-index:2;position:relative}.mobile-booking .sdc-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.mobile-booking .sdc-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-size:10px;font-weight:900}.mobile-booking .sdc-ref{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:900;line-height:1}.mobile-booking .sdc-status-badge{color:#10b981;text-transform:uppercase;letter-spacing:.1em;background:#10b98126;border-radius:100px;align-items:center;gap:4px;padding:6px 12px;font-size:10px;font-weight:900;display:flex;box-shadow:0 2px 10px #10b9811a}.mobile-booking .sdc-status-dot{background:#10b981;border-radius:50%;width:6px;height:6px}.mobile-booking .sdc-grid{border-top:1px solid #ffffff1a;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:16px;display:grid}.mobile-booking .sdc-grid-label{color:#6b7280;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-size:9px;font-weight:900}.mobile-booking .sdc-grid-val{color:#f9fafb;font-size:13px;font-weight:700}.mobile-booking .success-actions{flex-direction:column;gap:12px;display:flex}.mobile-booking .sa-btn-primary{appearance:none;font:inherit;background:var(--sipo-red);color:#fff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:16px;justify-content:center;align-items:center;gap:10px;width:100%;padding:16px;font-size:15px;font-weight:800;transition:all .2s;display:flex;box-shadow:0 10px 25px #e8362a40}.mobile-booking .sa-btn-primary:active{transform:scale(.98)}.mobile-booking .sa-btn-secondary{appearance:none;font:inherit;width:100%;color:var(--text-1);border:2px solid var(--border-color);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:15px;font-weight:800;transition:all .2s;display:flex}.mobile-booking .sa-btn-secondary:active{background:#f9fafb;transform:scale(.98)}.mobile-booking .info-cards-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px;display:grid}.mobile-booking .info-card{appearance:none;font:inherit;color:inherit;text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #0000;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;transition:transform .2s;display:flex;box-shadow:0 4px 20px #0000000a}.mobile-booking .info-card:hover{border-color:var(--sipo-red-light);transform:translateY(-4px)}.mobile-booking .info-card-icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mobile-booking .info-card-label{color:#4b5563;font-size:14px;font-weight:700}.mobile-booking .info-card-icon.blue{color:#3b82f6;background:#eff6ff}.mobile-booking .info-card-icon.emerald{color:#10b981;background:#ecfdf5}.mobile-booking .info-card-icon.orange{color:#f97316;background:#fff7ed}.mobile-booking .info-card-icon.red{color:#ef4444;background:#fef2f2}.mobile-booking .booking-sidebar{flex-direction:column;gap:24px;display:flex}.mobile-booking .sidebar-card{top:calc(var(--header-height) + 20px);position:sticky}.mobile-booking .reservation-card{border:1px solid var(--border-color);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 4px 30px #0000000f}.mobile-booking .reservation-card-head{border-bottom:1px solid var(--border-color);align-items:center;gap:14px;padding:20px 24px;display:flex}.mobile-booking .reservation-icon-wrap{width:44px;height:44px;color:var(--primary);background:linear-gradient(135deg,#e8553e1f,#e8553e0a);border-radius:14px;justify-content:center;align-items:center;display:flex}.mobile-booking .reservation-card-title{color:var(--text-1);margin:0;font-size:16px;font-weight:800}.mobile-booking .reservation-card-sub{color:var(--text-3);text-transform:uppercase;margin:2px 0 0;font-size:11px;font-weight:600}.mobile-booking .reservation-card-body{padding:20px 24px}.mobile-booking .reservation-empty{text-align:center;padding:24px 16px}.mobile-booking .reservation-empty-icon{width:56px;height:56px;color:var(--text-4);background:#9ca3af1a;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.mobile-booking .reservation-empty-text{color:var(--text-3);font-size:13px;font-weight:500}.mobile-booking .reservation-success-badge{background:#10b98114;border:1px solid #10b9811f;border-radius:16px;align-items:center;gap:14px;padding:16px;display:flex}.mobile-booking .reservation-success-icon{width:40px;height:40px;color:var(--green);background:#10b98126;border-radius:12px;justify-content:center;align-items:center;display:flex}.mobile-booking .reservation-success-title{color:var(--green);font-size:15px;font-weight:800}.mobile-booking .reservation-details{flex-direction:column;gap:4px;display:flex}.mobile-booking .res-detail-row{border-radius:14px;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.mobile-booking .res-detail-icon-wrap{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.mobile-booking .res-detail-icon-wrap.orange{color:#f97316;background:#f973161f}.mobile-booking .res-detail-icon-wrap.blue{color:#3b82f6;background:#3b82f61f}.mobile-booking .res-detail-icon-wrap.emerald{color:#10b981;background:#10b9811f}.mobile-booking .res-detail-icon-wrap.purple{color:#a855f7;background:#a855f71f}.mobile-booking .res-detail-content{flex-direction:column;display:flex}.mobile-booking .res-detail-label{color:var(--text-3);text-transform:uppercase;font-size:10px;font-weight:700}.mobile-booking .res-detail-value{color:var(--text-1);font-size:14px;font-weight:700}.mobile-booking .reservation-card-footer{border-top:1px solid var(--border-color);padding:16px 24px 24px}.mobile-booking .trust-badges{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.mobile-booking .trust-item{color:var(--text-3);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.mobile-booking .sidebar-cta-btn{border-radius:14px;padding:14px;font-size:14px;box-shadow:0 6px 20px #0000001f}.mobile-booking .powered-by-sipo{text-align:center;color:var(--text-4);margin-top:16px;font-size:11px;font-weight:600}.mobile-booking .powered-by-sipo a{color:var(--primary);justify-content:center;align-items:center;gap:6px;margin-top:4px;font-weight:700;text-decoration:none;display:flex}.mobile-booking .powered-by-logo{width:auto;height:18px}.mobile-booking .err-msg{color:var(--sipo-red);margin-top:4px;font-size:12px;font-weight:500;display:none}.mobile-booking .form-input.err{border-color:var(--sipo-red);background:var(--sipo-red-light)}.mobile-booking .more-dates-chip{color:var(--text-2);background:#f9fafb;border:1px dashed #1a14102e;justify-content:center;gap:4px;min-width:64px}.mobile-booking .more-dates-chip:hover{border-color:var(--sipo-red);color:var(--sipo-red);background:var(--sipo-red-light)}.mobile-booking .more-dates-chip.open{border-style:solid;border-color:var(--sipo-red);color:var(--sipo-red);background:var(--sipo-red-light)}.mobile-booking .more-dates-label{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:800}.mobile-booking .calendar-picker{border:1px solid var(--border-color);background:#fff;border-radius:20px;margin-top:12px;padding:20px;box-shadow:0 10px 30px #00000014}.mobile-booking .calendar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.mobile-booking .calendar-month-label{font-size:16px;font-weight:800}.mobile-booking .calendar-nav-btn{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.mobile-booking .calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.mobile-booking .calendar-day-header{text-align:center;color:var(--text-4);padding-bottom:8px;font-size:11px;font-weight:800}.mobile-booking .calendar-day{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.mobile-booking .calendar-day:hover:not(.past):not(.empty){background:#f9fafb}.mobile-booking .calendar-day.selected{background:var(--sipo-red);color:#fff}.mobile-booking .calendar-day.past{opacity:.2;cursor:not-allowed}.mobile-booking .calendar-day.today:not(.selected){color:var(--sipo-red)}.mobile-booking .selection-summary-box{border:1px solid var(--border-color);background:#fff;border-radius:20px;flex-direction:column;gap:12px;margin-top:16px;padding:20px;display:flex;box-shadow:0 4px 15px #00000005}.mobile-booking .selection-item{align-items:center;gap:12px;display:flex}.mobile-booking .si-icon{background:var(--sipo-red-light);width:40px;height:40px;color:var(--sipo-red);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-booking .si-content{flex-direction:column;display:flex}.mobile-booking .si-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.mobile-booking .si-value{color:var(--text-1);font-size:18px;font-weight:800}.mobile-booking .time-grid-scrollable{scrollbar-width:thin;scrollbar-color:#e5e7eb transparent;grid-template-columns:repeat(3,1fr);gap:10px;max-height:260px;padding:4px;display:grid;overflow-y:auto}.mobile-booking .time-grid-scrollable::-webkit-scrollbar{width:4px}.mobile-booking .time-grid-scrollable::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:10px}.mobile-booking .time-chip-compact{appearance:none;font:inherit;color:inherit;text-align:center;border:1px solid var(--border-color);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:12px;padding:10px 4px;font-size:13px;font-weight:700;transition:all .2s}.mobile-booking .time-chip-compact.selected{color:#fff;background:#000;border-color:#000}.mobile-booking .time-chip-compact.unavailable{opacity:.3;cursor:not-allowed;text-decoration:line-through}.mobile-booking .slots-message{color:#dc2626;text-align:center;background:#fef2f2;border:1px solid #fee2e2;border-radius:16px;margin-top:12px;padding:16px;font-size:14px;font-weight:600}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.booking-unavailable{max-width:560px;margin:40px auto 64px;padding:0 20px}.bu-card{text-align:center;background:radial-gradient(circle at 0 0,#e8553e0f,#0000 55%),radial-gradient(circle at 100% 100%,#f5b4000a,#0000 50%),#fff;border:1px solid #1a14100f;border-radius:24px;padding:40px 28px 32px;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff9,0 12px 40px -16px #0000002e}.bu-card:before{content:"";background:linear-gradient(90deg,#0000,#e8553e80,#0000);width:120px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.bu-icon-wrap{justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 20px;display:flex;position:relative}.bu-icon-ring{background:linear-gradient(135deg,#e8553e26,#e8553e0a);border:1px solid #e8553e2e;border-radius:22px;position:absolute;inset:0}.bu-icon{width:32px;height:32px;color:var(--primary);position:relative}.bu-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin:0;font-size:11px;font-weight:800}.bu-title{font-family:var(--font-display), "Playfair Display", Georgia, serif;color:var(--text-1);letter-spacing:-.02em;margin:8px 0 0;font-size:24px;font-weight:600;line-height:1.2}.bu-subtitle{color:var(--text-2);max-width:380px;margin:12px auto 0;font-size:14px;font-weight:500;line-height:1.55}.bu-reason{text-align:left;background:#f5b4000f;border:1px solid #f5b40033;border-radius:14px;margin-top:24px;padding:16px 18px}.bu-reason-label{text-transform:uppercase;letter-spacing:.1em;color:#b45309;margin-bottom:6px;font-size:10px;font-weight:800;display:block}.bu-reason-text{color:var(--text-1);white-space:pre-line;margin:0;font-size:13.5px;font-weight:500;line-height:1.55}.bu-divider{text-transform:uppercase;letter-spacing:.12em;color:var(--text-3);align-items:center;gap:12px;margin:28px 0 16px;font-size:10px;font-weight:800;display:flex}.bu-divider span:first-child,.bu-divider span:last-child{background:linear-gradient(90deg,#0000,#1a14101f,#0000);flex:1;height:1px}.bu-contact-row{flex-direction:column;gap:10px;display:flex}.bu-contact-btn{color:var(--text-1);background:#fff;border:1px solid #1a14101a;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:13px 18px;font-size:14px;font-weight:700;text-decoration:none;transition:background .18s,border-color .18s,transform .15s;display:inline-flex}.bu-contact-btn svg{width:17px;height:17px;color:var(--text-3);flex-shrink:0}.bu-contact-btn:hover{background:var(--bg-app);border-color:#1a14102e}.bu-contact-btn:active{transform:scale(.985)}.bu-contact-btn--primary{background:var(--text-1);color:#fff;border-color:var(--text-1);box-shadow:0 6px 18px -8px #0006}.bu-contact-btn--primary svg{color:#ffffffd9}.bu-contact-btn--primary:hover{background:var(--primary);border-color:var(--primary);box-shadow:0 8px 22px -8px #e8553e8c}.bu-footnote{color:var(--text-3);margin:24px 0 0;font-size:12px;font-weight:500;line-height:1.5}@media (max-width:480px){.booking-unavailable{margin:24px auto 40px;padding:0 16px}.bu-card{border-radius:20px;padding:32px 20px 24px}.bu-icon-wrap{width:64px;height:64px;margin-bottom:16px}.bu-icon{width:28px;height:28px}.bu-title{font-size:21px}.bu-subtitle{font-size:13px}.bu-reason{margin-top:20px;padding:14px 16px}.bu-contact-btn{padding:12px 16px;font-size:13.5px}}
.desktop-view-only{display:block}.mobile-view-only{display:none}@media (max-width:1024px){.desktop-view-only{display:none}.mobile-view-only{display:block}}.booking-loading-placeholder{min-height:400px;color:var(--text-3);background:#fff;border-radius:24px;justify-content:center;align-items:center;margin:20px;font-weight:600;display:flex}
