.booking-page{max-width:520px;margin-inline:auto;padding-top:2rem;padding-bottom:6rem;padding-inline:1rem}.booking-stepper{display:flex;align-items:flex-start;justify-content:center;gap:0;margin-bottom:2.5rem;flex-wrap:nowrap;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;padding-inline:1rem}.booking-stepper::-webkit-scrollbar{display:none}.booking-step,.booking-step-inner{display:flex;align-items:center}.booking-step-inner{flex-direction:column;min-width:50px}@media (min-width:576px){.booking-step-inner{min-width:60px}}.booking-step-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;transition:background .3s,box-shadow .3s,color .3s;position:relative;background:var(--bs-secondary-bg,#e9ecef);color:var(--text-muted,#6c757d);border:2px solid transparent;cursor:default}@media (min-width:576px){.booking-step-dot{width:36px;height:36px;font-size:.85rem}}.booking-step-dot.is-active{background:var(--active-color);color:#fff;border-color:var(--active-color);box-shadow:0 0 0 4px var(--active-color-transparent-light)}.booking-step-dot.is-done{background:#10b981;color:#fff;border-color:#10b981}.booking-step-label{font-size:.65rem;margin-top:5px;color:var(--text-muted,#6c757d);text-align:center;font-weight:400;white-space:nowrap;transition:color .3s}@media (min-width:576px){.booking-step-label{font-size:.65rem}}.booking-step-label.is-active{color:var(--active-color);font-weight:600}.booking-step-line{width:18px;height:2px;border-radius:1px;background:var(--bs-secondary-bg,#e9ecef);margin-bottom:20px;flex-shrink:0;transition:background .4s}@media (min-width:576px){.booking-step-line{width:28px}}.booking-step-line.is-done{background:#10b981}.booking-section-title{font-size:1.5rem;font-weight:700;color:var(--text-primary-color);margin-bottom:.75rem}.booking-section-subtitle{font-size:.9rem;color:var(--text-muted);margin-bottom:1.75rem}.booking-category-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.6rem;padding-inline-start:.25rem}.booking-card{background:var(--bg-card,#ffffff);border:1.5px solid var(--border-color);border-radius:1rem;transition:border-color .2s,box-shadow .2s;cursor:pointer;overflow:hidden}.booking-card:hover{border-color:var(--active-color-transparent);box-shadow:0 4px 16px rgba(0,0,0,.07)}.booking-card.is-selected{border-color:var(--active-color);box-shadow:0 0 0 3px var(--active-color-transparent-light)}.booking-card-body{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;gap:.75rem}.booking-card-info{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.booking-card-name{font-weight:600;font-size:.95rem;color:var(--text-primary-color)}.booking-card-meta{font-size:.78rem;color:var(--text-muted);display:flex;align-items:center;gap:.3rem}.booking-card-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.booking-card-price{font-weight:700;font-size:.95rem;color:var(--text-primary-color)}.booking-checkbox{width:24px;height:24px;border-radius:50%;border:2px solid var(--active-color);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.booking-checkbox.is-checked{background:var(--active-color)}.booking-avatar{width:52px;height:52px;border-radius:50%;background:var(--bg-neutral);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;font-weight:700;font-size:1.1rem;color:var(--active-color);border:2px solid var(--border-color)}.booking-avatar img{width:100%;height:100%;object-fit:cover}.booking-radio-dot{border:2px solid var(--active-color);flex-shrink:0}.booking-radio-dot-inner{background:var(--active-color)}.booking-dates-scroll{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;-ms-overflow-style:none;scrollbar-width:none;margin-bottom:1.75rem}.booking-dates-scroll::-webkit-scrollbar{display:none}.booking-date-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-width:58px;padding:.55rem .5rem;border-radius:.85rem;border:1.5px solid var(--border-color);background:var(--bg-card);cursor:pointer;scroll-snap-align:start;flex-shrink:0;transition:border-color .2s,background .2s,color .2s}.booking-date-chip:hover{border-color:var(--active-color-transparent)}.booking-date-chip.is-active{background:var(--active-color);border-color:var(--active-color);box-shadow:0 2px 8px var(--active-color-transparent)}.booking-date-chip-day{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.booking-date-chip-num{font-size:1.1rem;font-weight:700;color:var(--text-primary-color);line-height:1}.booking-date-chip-month{font-size:.62rem;color:var(--text-muted)}.booking-date-chip.is-active .booking-date-chip-day,.booking-date-chip.is-active .booking-date-chip-month,.booking-date-chip.is-active .booking-date-chip-num{color:#fff}.booking-time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem}@media (min-width:480px){.booking-time-grid{grid-template-columns:repeat(4,1fr)}}.booking-time-slot{padding:.55rem .25rem;border-radius:.75rem;border:1.5px solid var(--border-color);background:var(--bg-card);font-size:.85rem;font-weight:500;color:var(--text-primary-color);text-align:center;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.booking-time-slot:hover{border-color:var(--active-color-transparent)}.booking-time-slot.is-active{background:var(--active-color);border-color:var(--active-color);color:#fff;font-weight:600;box-shadow:0 2px 8px var(--active-color-transparent)}.booking-input-group{position:relative;margin-bottom:.5rem}.booking-input-icon{position:absolute;inset-block-start:50%;inset-inline-start:.9rem;transform:translateY(-50%);color:var(--text-muted);font-size:.95rem;pointer-events:none;z-index:1}.booking-input{width:100%;padding-block:.75rem;padding-inline-start:2.75rem;padding-inline-end:1rem;border-radius:.75rem;border:1.5px solid var(--border-color);background:var(--bg-card);color:var(--text-primary-color);font-family:var(--font-family);font-size:.95rem;transition:border-color .2s,box-shadow .2s;outline:none}.booking-input::placeholder{color:var(--text-muted);opacity:.7}.booking-input:focus{border-color:var(--active-color);box-shadow:0 0 0 3px var(--active-color-transparent-light)}.booking-textarea{padding-inline-start:2.75rem;resize:none;min-height:90px}.booking-field-label{font-size:.82rem;font-weight:600;color:var(--text-primary-color);margin-bottom:.4rem;display:block}.booking-summary-card{background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:1rem;overflow:hidden}.booking-summary-card-header{height:3px;background:linear-gradient(90deg,var(--active-color),var(--active-color-transparent))}.booking-summary-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:.85rem}.booking-summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.booking-summary-label{font-size:.82rem;color:var(--text-muted);text-align:start;flex-shrink:0}.booking-summary-value{font-weight:600;font-size:.9rem;color:var(--text-primary-color);text-align:end;max-width:60%}.booking-summary-divider{height:1px;background:var(--border-color);margin-block:.25rem}.booking-summary-total-label{font-weight:700;font-size:.95rem;color:var(--text-primary-color)}.booking-summary-total-value{font-weight:800;font-size:1.2rem;color:var(--active-color)}.booking-deposit-badge{display:inline-flex;align-items:center;gap:.3rem;background:rgba(245,158,11,.12);color:#b45309;border:1px solid rgba(245,158,11,.3);border-radius:.5rem;padding:.35rem .65rem;font-size:.78rem;font-weight:600;margin-top:.25rem}.booking-otp-wrapper{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.25rem}.booking-otp-box{width:46px;height:56px;border-radius:.75rem;border:1.5px solid var(--border-color);background:var(--bg-card);color:var(--text-primary-color);font-size:1.5rem;font-weight:700;text-align:center;font-family:var(--font-family);transition:border-color .2s,box-shadow .2s;outline:none;caret-color:var(--active-color)}.booking-otp-box:focus{border-color:var(--active-color);box-shadow:0 0 0 3px var(--active-color-transparent-light)}.booking-icon-circle{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-inline:auto;margin-bottom:1.5rem}.booking-icon-circle--blue{background:rgba(59,130,246,.1);color:#3b82f6}.booking-icon-circle--green{background:rgba(16,185,129,.12);color:#10b981}.booking-icon-circle--amber{background:var(--active-color-transparent-light);color:var(--active-color)}.booking-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding:1.25rem 0;border-top:1px solid var(--border-color);gap:.75rem;position:sticky;bottom:0;z-index:100;background:var(--bg-neutral,#fff)}.booking-btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.75rem;border-radius:.75rem;border:none;background:var(--active-color);color:#fff;font-weight:700;font-size:.95rem;font-family:var(--font-family);cursor:pointer;transition:opacity .2s,box-shadow .2s,transform .15s;box-shadow:0 2px 12px var(--active-color-transparent)}.booking-btn-primary:hover:not(:disabled){opacity:.92;box-shadow:0 4px 20px var(--active-color-transparent);transform:translateY(-1px)}.booking-btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.booking-btn-ghost{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:.75rem;border:1.5px solid var(--border-color);background:transparent;color:var(--text-primary-color);font-weight:600;font-size:.95rem;font-family:var(--font-family);cursor:pointer;transition:border-color .2s,background .2s}.booking-btn-ghost:hover:not(:disabled){border-color:var(--active-color-transparent);background:var(--active-color-transparent-light)}.booking-btn-ghost:disabled{opacity:.4;cursor:not-allowed}.booking-btn-success{display:inline-flex;gap:.5rem;padding:.7rem 1.5rem;border-radius:.75rem;font-size:.95rem;font-family:var(--font-family);cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:0 2px 12px rgba(16,185,129,.3)}.booking-btn-success:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.booking-btn-success:disabled{opacity:.45;transform:none}.booking-summary-bar{position:sticky;bottom:0;padding-top:1rem;padding-bottom:.5rem;background:linear-gradient(to top,var(--bg-light,#fff) 75%,transparent);margin-top:1rem;z-index:10}.booking-summary-bar-inner{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.1rem;border-radius:.875rem;background:var(--bg-card);border:1.5px solid var(--border-color);box-shadow:0 4px 24px rgba(0,0,0,.08)}.booking-summary-bar-text{font-size:.85rem;font-weight:600;color:var(--text-primary-color)}.booking-summary-bar-price{font-size:1rem;font-weight:800;color:var(--active-color)}.booking-loading{display:flex;justify-content:center;align-items:center;padding:3rem 0}.booking-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--border-color);border-top-color:var(--active-color);animation:booking-spin .7s linear infinite}@keyframes booking-spin{to{transform:rotate(1turn)}}.booking-empty{text-align:center;color:var(--text-muted);padding:2.5rem 0;font-size:.9rem}.booking-error{font-size:.82rem;color:#ef4444;margin-top:.35rem;padding-inline-start:.25rem}.dark .booking-step-dot{background:rgba(255,255,255,.08);color:#6b7280}.dark .booking-step-line{background:rgba(255,255,255,.1)}.dark .booking-step-line.is-done{background:#10b981}.dark .booking-card{background:var(--bg-card,#1e1e1e);box-shadow:none}.dark .booking-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.4)}.dark .booking-date-chip,.dark .booking-time-slot{background:var(--bg-card,#1e1e1e)}.dark .booking-input{background:transparent;color:#e4e6eb}.dark .booking-input::placeholder{color:#6b7280}.dark .booking-otp-box{color:#e4e6eb}.dark .booking-otp-box,.dark .booking-summary-card{background:var(--bg-card,#1e1e1e)}.dark .booking-summary-bar{background:linear-gradient(to top,var(--bg-dark,#121212) 75%,transparent)}.dark .booking-summary-bar-inner{background:var(--bg-card,#1e1e1e);box-shadow:0 4px 24px rgba(0,0,0,.5)}.dark .booking-deposit-badge{color:#fbbf24;background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.25)}.custom-calendar-wrapper{display:flex;justify-content:center;margin-bottom:1.5rem;width:100%}.booking-day-picker{--rdp-accent-color:var(--active-color);--rdp-accent-background-color:var(--active-color-transparent-light);--rdp-day-height:46px;--rdp-day-width:46px;--rdp-day_button-width:42px;--rdp-day_button-height:42px;--rdp-nav_button-width:2.5rem;--rdp-nav_button-height:2.5rem;--rdp-nav-height:3.5rem;--rdp-dropdown-gap:1rem;--rdp-today-color:var(--active-color);--rdp-disabled-opacity:0.3;margin:0 auto;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:1rem;padding:1.25rem;font-family:var(--font-family);color:var(--text-primary-color);width:100%}.booking-day-picker .rdp-months{width:100%;justify-content:center}.booking-day-picker .rdp-month{width:100%}.booking-day-picker .rdp-month_grid{width:100%;table-layout:fixed}.booking-day-picker .rdp-day{width:14.28%;height:46px;padding:0}.booking-day-picker .rdp-day_button{margin:0 auto;font-size:.95rem;font-weight:500;width:38px;height:38px;border-radius:50%!important;display:flex;align-items:center;justify-content:center}.booking-day-picker .rdp-day_button:hover:not([disabled]):not(.rdp-selected){background-color:var(--active-color-transparent-light);color:var(--active-color)}.booking-day-picker .rdp-selected .rdp-day_button{background-color:var(--active-color)!important;color:#fff!important;font-weight:700;border-color:var(--active-color)!important}.booking-day-picker .rdp-nav{gap:.5rem;background:transparent!important;box-shadow:none!important}.booking-day-picker .rdp-caption_label{font-weight:800;font-size:1.25rem;padding-left:.5rem;padding-right:.5rem}.booking-day-picker .rdp-weekday{color:var(--text-muted);font-weight:700;font-size:.85rem;text-transform:uppercase}.booking-day-picker .rdp-button_next,.booking-day-picker .rdp-button_previous{border:1px solid var(--border-color)!important;border-radius:.5rem!important;transition:all .2s ease;box-shadow:none!important;background:transparent!important;display:inline-flex;align-items:center;justify-content:center}.booking-day-picker .rdp-button_next:hover,.booking-day-picker .rdp-button_previous:hover{background:var(--bg-neutral)!important;border-color:var(--active-color-transparent)!important}.dark .booking-day-picker{background:var(--bg-card,#1e1e1e)}.dark .booking-avatar{background:var(--bg-secondary,#1e1e1e);border-color:rgba(255,255,255,.08)}.booking-drawer-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1050}.booking-drawer-content{background:var(--bg-card,#1e1e1e);display:flex;flex-direction:column;border-top-left-radius:20px;border-top-right-radius:20px;height:auto;max-height:85vh;position:fixed;bottom:0;left:0;right:0;z-index:1060;padding:1.5rem 1.5rem 2rem}.booking-drawer-handle{width:40px;height:5px;background-color:var(--border-color,#444);border-radius:9999px;margin:0 auto 1.5rem}.booking-drawer-body{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.booking-drawer-body::-webkit-scrollbar{display:none}.booking-payment-selector{background:transparent}.booking-payment-options{display:flex;flex-direction:column;gap:12px}.booking-payment-option{display:flex;align-items:center;padding:16px;border:1.5px solid var(--border-color,#e0e0e0);border-radius:10px;cursor:pointer;transition:all .2s ease;background:var(--bg-card,#fff)}.booking-payment-option:hover{border-color:#aaa;background:rgba(0,0,0,.02)}.booking-payment-option.is-selected{border-color:var(--active-color,#17a2b8);background:rgba(23,162,184,.05)}.booking-payment-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-right:16px}html[dir=rtl] .booking-payment-icon{margin-right:0;margin-left:16px}.booking-payment-icon.paypal{background:#f0f8ff;color:#00457c}.booking-payment-icon.cash{background:#f0fdf4;color:#15803d}.booking-payment-info{flex:1}.booking-payment-name{font-weight:700;font-size:1rem;color:var(--text-color,#333);margin-bottom:2px}.booking-payment-desc{font-size:.85rem;color:var(--text-muted,#6c757d)}.booking-radio-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-color,#ccc);display:flex;align-items:center;justify-content:center;margin-left:16px}html[dir=rtl] .booking-radio-dot{margin-left:0;margin-right:16px}.booking-payment-option.is-selected .booking-radio-dot{border-color:var(--active-color,#17a2b8)}.booking-radio-dot-inner{width:10px;height:10px;border-radius:50%;background:var(--active-color,#17a2b8)}.booking-btn-success{background:#10b981;color:#fff;border:none;border-radius:10px;padding:14px 20px;font-weight:700;font-size:1.05rem;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}.booking-btn-success:hover{background:#059669}.booking-btn-success:disabled{opacity:.7;cursor:not-allowed}.booking-paypal-btn{background:#ffc439;color:#000;border:none;border-radius:10px;padding:14px 20px;font-weight:700;font-size:1.05rem;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:opacity .2s}.booking-paypal-btn:hover{opacity:.9}