.booking-modal-overlay *{box-sizing:border-box}:root{--booking-primary:#D4AF37;--booking-primary-dark:#B8860B;--booking-secondary:#1A2B3C;--booking-bg-glass:rgba(255, 255, 255, 0.85);--booking-border-glass:rgba(255, 255, 255, 0.3);--booking-text-main:#2D3748;--booking-text-muted:#718096;--booking-success:#10B981;--booking-error-red:#E53E3E;--booking-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.25)}.booking-modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgb(15 23 42 / .6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:99999;opacity:0;transition:opacity 0.4s cubic-bezier(.4,0,.2,1)}.booking-modal-overlay.active{display:flex!important;align-items:center;justify-content:center;opacity:1}.booking-modal-container{background:var(--booking-bg-glass);border:1px solid var(--booking-border-glass);border-radius:20px;max-width:580px;width:calc(100% - 32px);height:auto;max-height:85vh;overflow:hidden;box-shadow:var(--booking-shadow);transform:scale(.95) translateY(20px);opacity:0;transition:all 0.5s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;position:relative}.booking-modal-overlay.active .booking-modal-container{transform:scale(1) translateY(0);opacity:1}@media (max-width:576px){.booking-modal-overlay{align-items:flex-end}.booking-modal-container{width:100%;max-width:100%;margin:0;border-radius:32px 32px 0 0;transform:translateY(100%);transition:transform 0.5s cubic-bezier(.32,.72,0,1)}.booking-modal-overlay.active .booking-modal-container{transform:translateY(0)}}.booking-modal-header{padding:24px 28px 16px;background:#fff0;position:relative;text-align:left;flex-shrink:0}.booking-modal-title{font-size:20px;font-weight:700;color:var(--booking-secondary);margin:0;font-family:'Outfit','Inter',sans-serif;letter-spacing:-.02em}.booking-modal-close{position:absolute;top:16px;right:16px;background:rgb(15 23 42 / .05);border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;color:var(--booking-secondary)}.booking-modal-close:hover{background:rgb(15 23 42 / .1);transform:rotate(90deg)}.bottom-sheet-handle{display:none;width:40px;height:4px;background:rgb(15 23 42 / .1);border-radius:2px;margin:12px auto 0}@media (max-width:576px){.bottom-sheet-handle{display:block}.booking-modal-header{padding:12px 24px 16px;text-align:center}.booking-modal-close{display:none}}.booking-step-indicator{padding:0 28px 20px;display:flex;align-items:center;gap:12px}.step-item{display:flex;align-items:center;gap:8px;opacity:.4;transition:opacity 0.3s ease}.step-item.active{opacity:1}.step-item.completed{opacity:.8}.step-number{width:24px;height:24px;border-radius:50%;background:var(--booking-secondary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.step-item.completed .step-number{background:var(--booking-success)}.step-label{font-size:13px;font-weight:600;color:var(--booking-secondary)}.step-divider{flex:1;height:2px;background:rgb(15 23 42 / .05);border-radius:1px}.booking-modal-body{padding:0 28px 24px;overflow-y:auto;flex:1;scrollbar-width:thin}@media (max-width:576px){.booking-modal-body{padding:0 20px 24px}}.booking-form-step{display:none}.booking-form-step.active{display:block;animation:fadeSlideUp 0.5s ease forwards}@keyframes fadeSlideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-intro h3{font-size:16px;font-weight:700;color:var(--booking-secondary);margin-bottom:16px}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:24px}@media (max-width:576px){.service-grid{grid-template-columns:repeat(2,1fr);gap:10px}}.service-card{background:#fff;border:1px solid rgb(15 23 42 / .08);border-radius:12px;padding:12px 8px;text-align:center;cursor:pointer;transition:all 0.3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.service-card:hover{border-color:var(--booking-primary);transform:translateY(-2px);box-shadow:0 10px 20px -5px rgb(212 175 55 / .15)}.service-card.selected{background:var(--booking-secondary);border-color:var(--booking-secondary)}.service-icon{font-size:24px;color:var(--booking-primary);margin-bottom:10px;display:block;transition:color 0.3s ease}.service-card.selected .service-icon{color:#fff}.service-name{font-size:13px;font-weight:600;color:var(--booking-secondary);line-height:1.3}.service-card.selected .service-name{color:#fff}.datetime-selection-integrated{background:rgb(255 255 255 / .5);border:1px solid rgb(15 23 42 / .05);border-radius:20px;padding:16px;margin-top:16px;overflow:hidden}.datetime-selection-integrated .row{margin-left:-4px;margin-right:-4px}.datetime-selection-integrated .col-lg-6,.datetime-selection-integrated .col-12{padding-left:4px;padding-right:4px}.date-picker-wrapper{position:relative;z-index:10}.section-label{display:block;font-size:13px;font-weight:700;color:var(--booking-secondary);margin-bottom:8px}.time-periods-integrated{display:flex;gap:4px;background:rgb(15 23 42 / .05);padding:4px;border-radius:12px;height:48px;align-items:center}.time-periods-integrated .period-option{flex:1;height:100%}.time-periods-integrated .period-option span{display:flex;align-items:center;justify-content:center;height:100%;padding:0;font-size:12px;font-weight:700;color:var(--booking-text-muted);cursor:pointer;border-radius:8px;transition:all 0.2s ease}.time-periods-integrated .period-option input:checked+span{background:#fff;color:var(--booking-secondary);box-shadow:0 4px 10px rgb(0 0 0 / .05)}.date-input{width:100%;background:#fff;border:1.5px solid rgb(15 23 42 / .1);border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;color:var(--booking-secondary);cursor:pointer;transition:all 0.2s ease}.date-input:focus{border-color:var(--booking-primary);outline:none;box-shadow:0 0 0 4px rgb(212 175 55 / .1)}.time-periods{display:flex;gap:8px;margin-bottom:16px;background:rgb(15 23 42 / .05);padding:4px;border-radius:12px}.period-option{flex:1;position:relative}.period-option input{display:none}.period-option span{display:block;text-align:center;padding:8px;font-size:13px;font-weight:700;color:var(--booking-text-muted);cursor:pointer;border-radius:8px;transition:all 0.2s ease}.period-option input:checked+span{background:#fff;color:var(--booking-secondary);box-shadow:0 4px 12px rgb(0 0 0 / .05)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px}.slot-btn{background:#fff;border:1.5px solid rgb(15 23 42 / .08);border-radius:10px;padding:10px 4px;font-size:13px;font-weight:700;color:var(--booking-secondary);cursor:pointer;transition:all 0.2s ease}.slot-btn:hover{border-color:var(--booking-primary)}.slot-btn.active{background:var(--booking-primary);border-color:var(--booking-primary);color:#fff;box-shadow:0 4px 12px rgb(212 175 55 / .3)}.booking-form{display:grid;gap:20px}.floating-group{position:relative;margin-top:5px}.floating-group .form-label{position:absolute;top:14px;left:16px;font-size:15px;font-weight:500;color:var(--booking-text-muted);pointer-events:none;transition:all 0.2s ease;background:#fff;padding:0 5px;margin-bottom:0}.floating-group .form-input:focus~.form-label,.floating-group .form-input:not(:placeholder-shown)~.form-label,.floating-group .form-textarea:focus~.form-label,.floating-group .form-textarea:not(:placeholder-shown)~.form-label{top:-10px;left:12px;font-size:12px;font-weight:700;color:var(--booking-primary);opacity:1}.form-input.error~.form-label{color:var(--booking-error-red)}.form-input::placeholder,.form-textarea::placeholder{color:#fff0}.form-input:focus::placeholder,.form-textarea:focus::placeholder{color:var(--booking-text-muted)}.form-input,.form-textarea{width:100%;background:#fff;border:1.5px solid rgb(15 23 42 / .1);border-radius:12px;padding:14px 16px;font-size:16px;color:var(--booking-secondary);transition:all 0.2s ease}.form-input:focus,.form-textarea:focus{border-color:var(--booking-primary);outline:none;box-shadow:0 0 0 4px rgb(212 175 55 / .1)}.form-error{font-size:12px;color:var(--booking-error-red);margin-top:4px;display:none}.form-input.error{border-color:var(--booking-error-red)}.form-input:invalid:not(:placeholder-shown){border-color:var(--booking-error-red)}.booking-modal-footer{padding:20px 28px;background:#fff;display:flex;gap:16px;border-top:1px solid rgb(15 23 42 / .05);margin-top:auto;flex-shrink:0}@media (max-width:576px){.booking-modal-footer{padding:16px 20px;gap:12px}}.btn-booking{padding:16px 24px;border-radius:14px;font-size:15px;font-weight:700;cursor:pointer;transition:all 0.3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:8px;border:none;font-family:inherit}.btn-booking-primary{background:var(--booking-secondary);color:#fff;flex:2}.btn-booking-primary:hover:not(:disabled){background:#0F172A;transform:translateY(-2px);box-shadow:0 10px 20px -5px rgb(15 23 42 / .3)}.btn-booking-primary:disabled{background:rgb(15 23 42 / .2);cursor:not-allowed}.btn-booking-secondary{background:rgb(15 23 42 / .05);color:var(--booking-secondary);flex:1}.booking-success,.booking-error{text-align:center;padding:40px 0;animation:fadeInModalContent 0.5s ease}.success-icon{font-size:64px;color:var(--booking-success);margin-bottom:24px;display:block;filter:drop-shadow(0 0 20px rgb(16 185 129 / .3))}.error-icon{font-size:64px;color:var(--booking-error-red);margin-bottom:24px;display:block;filter:drop-shadow(0 0 20px rgb(229 62 62 / .3))}.success-title,.error-title{font-size:24px;font-weight:800;color:var(--booking-secondary);margin-bottom:12px}.success-message,.error-message{font-size:15px;color:var(--booking-text-muted);line-height:1.6;margin-bottom:32px}@media (max-width:576px){.success-message,.error-message{font-size:14px;margin-bottom:24px}}.success-booking-id{background:rgb(212 175 55 / .1);border:1.5px dashed var(--booking-primary);border-radius:16px;padding:16px;margin:0 auto 32px;max-width:240px}.success-actions,.error-actions{display:flex;flex-direction:column;gap:12px;max-width:280px;margin:0 auto}.btn-success-action{padding:14px 20px;border-radius:12px;font-size:14px;font-weight:700;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--booking-secondary);color:#fff;transition:all 0.2s ease}.btn-success-action:hover{background:#0F172A;color:#fff}.btn-success-action.btn-booking-secondary{background:rgb(15 23 42 / .05);color:var(--booking-secondary)}@keyframes fadeInModalContent{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.booking-loading{display:none;position:absolute;inset:0;background:rgb(255 255 255 / .85);backdrop-filter:blur(8px);z-index:100;align-items:center;justify-content:center;flex-direction:column}.booking-loading.active{display:flex}.loading-spinner{width:48px;height:48px;border:4px solid rgb(212 175 55 / .1);border-top:4px solid var(--booking-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.flatpickr-calendar{box-shadow:var(--booking-shadow)!important;border:1px solid rgb(15 23 42 / .1)!important;border-radius:16px!important;z-index:100001!important}.flatpickr-calendar.static{top:100%!important;margin-top:5px}.flatpickr-day.selected{background:var(--booking-primary)!important;border-color:var(--booking-primary)!important}