.booking-container{background:#fff;border-radius:8px;max-width:1000px;margin:2rem auto;padding:2rem;box-shadow:0 4px 12px #0000000d}.booking-header{text-align:center;margin-bottom:2rem}.booking-header h1{font-family:var(--font-heading);margin-bottom:.5rem;font-size:2.5rem}.booking-header p{color:var(--color-text-secondary)}.booking-progress{margin-bottom:var(--spacing-xl);justify-content:center;align-items:center;gap:var(--spacing-md);display:flex}.progress-step{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.progress-number{background:var(--color-border);width:40px;height:40px;color:var(--color-text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:600;transition:all .3s;display:flex}.progress-step.active .progress-number{background:var(--color-accent);color:var(--color-white)}.progress-step.completed .progress-number{color:var(--color-white);background:#27ae60}.progress-label{color:var(--color-text-secondary);text-align:center;font-size:.8rem;font-weight:500}.progress-step.active .progress-label{color:var(--color-accent);font-weight:600}.progress-line{background:var(--color-border);flex:1;min-width:40px;height:2px}.progress-step.completed~.progress-line,.progress-step.active~.progress-line{background:var(--color-accent)}.booking-step-container{animation:.3s fadeIn;display:none}.booking-step-container.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.packages-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(3,1fr);align-items:start;display:grid}.package-card{background:var(--color-white);border:2px solid var(--color-border);cursor:pointer;transition:all .3s;position:relative}.package-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #0000001a}.package-card.selected{border-color:var(--color-accent);background:rgba(var(--color-accent-rgb),.02)}.package-card.selected:before{content:"✓";background:var(--color-accent);width:30px;height:30px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:flex;position:absolute;top:10px;right:10px}.featured-label{background:var(--color-accent);color:var(--color-white);text-transform:uppercase;letter-spacing:.5px;padding:4px 16px;font-size:.75rem;font-weight:600;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.package-header{padding:var(--spacing-lg)var(--spacing-lg)var(--spacing-sm);text-align:center}.package-header h3{margin-bottom:var(--spacing-xs);font-size:1.3rem}.package-tagline{color:var(--color-text-secondary);margin:0;font-size:.9rem}.package-price{text-align:center;padding:var(--spacing-sm)0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.price{font-family:var(--font-heading);color:var(--color-accent);font-size:2.5rem}.package-details{padding:var(--spacing-md)var(--spacing-lg)}.package-details ul{margin:0;padding:0;list-style:none}.package-details ul li{padding:var(--spacing-xs)0;align-items:center;gap:var(--spacing-sm);font-size:.9rem;display:flex}.package-details ul li i{color:var(--color-accent)}.date-time-selector{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);background:var(--color-white);padding:var(--spacing-lg);border:1px solid var(--color-border);grid-template-columns:2fr 1fr;display:grid}.calendar-wrapper{min-height:400px}.calendar{width:100%}.calendar-month-header{margin-bottom:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-secondary);justify-content:space-between;align-items:center;display:flex}.calendar-month-header button{color:var(--color-accent);cursor:pointer;padding:var(--spacing-xs)var(--spacing-sm);background:0 0;border:none;font-weight:700}.calendar-weekdays{margin-bottom:var(--spacing-sm);grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xs);text-transform:uppercase;font-size:.8rem;font-weight:600}.calendar-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-day{aspect-ratio:1;border:1px solid var(--color-border);cursor:pointer;background:var(--color-white);justify-content:center;align-items:center;font-size:.9rem;transition:all .2s;display:flex;color:#000!important;font-weight:700!important}.calendar-day:hover:not(.disabled){border-color:var(--color-accent);background:rgba(var(--color-accent-rgb),.05)}.calendar-day.other-month{color:#999;background:var(--color-background);font-weight:400}.calendar-day.available{color:#155724!important;background-color:#d4edda!important;border-color:#28a745!important}.calendar-day.fully-booked{cursor:not-allowed;color:#721c24!important;background-color:#f8d7da!important;border-color:#dc3545!important}.calendar-day.no-slots{cursor:not-allowed;color:#383d41!important;background-color:#e2e3e5!important;border-color:#d6d8db!important}.calendar-day.selected{background-color:var(--color-accent)!important;color:var(--color-white)!important;border-color:var(--color-accent)!important}.calendar-day.disabled{background:var(--color-background);cursor:not-allowed;color:#ccc!important;font-weight:400!important}.slots-sidebar{background:var(--color-background);padding:var(--spacing-md);border-radius:4px}.slots-sidebar h3{margin-top:0;margin-bottom:var(--spacing-md);font-size:1.1rem}.slots-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.slot-option{padding:var(--spacing-md);background:var(--color-white);border:2px solid var(--color-border);cursor:pointer;text-align:center;border-radius:4px;transition:all .2s}.slot-option:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #0000001a}.slot-option.selected{background:var(--color-accent);color:var(--color-white);border-color:var(--color-accent)}.slot-time{margin-bottom:4px;font-weight:600}.slot-duration{opacity:.8;font-size:.8rem}.addons-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}.addon-option{padding:var(--spacing-md);background:var(--color-white);border:2px solid var(--color-border);cursor:pointer;align-items:flex-start;gap:var(--spacing-md);transition:all .2s;display:flex}.addon-option:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #0000001a}.addon-option.selected{background:rgba(var(--color-accent-rgb),.02);border-color:var(--color-accent)}.addon-checkbox{cursor:pointer;flex-shrink:0;width:20px;height:20px;margin-top:2px}.addon-info{flex:1}.addon-title{margin-bottom:4px;font-weight:600}.addon-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);font-size:.85rem}.addon-price{color:var(--color-accent);font-weight:600}.addon-summary{background:var(--color-white);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:4px}.summary-row{padding:var(--spacing-sm)0;justify-content:space-between;font-size:.95rem;display:flex}.summary-row hr{margin:var(--spacing-xs)0}.summary-subtotal{font-weight:600}.summary-deposit{color:var(--color-accent);font-weight:600}.summary-balance{color:var(--color-text-secondary);font-size:.9rem}.review-section{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.review-box{background:var(--color-white);border:1px solid var(--color-border);padding:var(--spacing-lg);border-radius:4px}.review-box h3{margin-top:0;margin-bottom:var(--spacing-md)}.review-item{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.review-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.review-item label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.85rem;display:block}.review-item p{margin:0;font-weight:500}.review-item ul{margin:0;padding-left:20px}.review-item li{margin-bottom:4px}.review-pricing{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.price-row{margin-bottom:var(--spacing-sm);justify-content:space-between;font-size:.95rem;display:flex}.price-row:last-child{margin-bottom:0}.deposit-highlight{color:var(--color-accent);font-weight:600}.customer-form{background:var(--color-white);border:1px solid var(--color-border);padding:var(--spacing-lg);border-radius:4px}.customer-form h3{margin-top:0;margin-bottom:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-label{margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-control{width:100%;padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);border-radius:4px;font-family:inherit;font-size:.95rem}.form-control:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.1);outline:none}.form-error{color:#e74c3c;margin-top:4px;font-size:.8rem;display:block}.deposit-notice{background:rgba(var(--color-accent-rgb),.05);border-left:4px solid var(--color-accent);padding:var(--spacing-md);margin:var(--spacing-md)0;gap:var(--spacing-md);border-radius:4px;align-items:flex-start;display:flex}.deposit-notice i{color:var(--color-accent);flex-shrink:0;margin-top:2px;font-size:1.3rem}.deposit-notice strong{color:var(--color-accent)}.deposit-notice p{margin:var(--spacing-xs)0 0 0;color:var(--color-text-secondary);font-size:.9rem}.step-navigation{gap:var(--spacing-md);margin-top:var(--spacing-lg);justify-content:flex-end;display:flex}.step-navigation .btn{min-width:160px}.loading-spinner{text-align:center;padding:var(--spacing-lg);color:var(--color-text-secondary)}.loading-spinner p{margin:0}@media (max-width:1024px){.packages-grid,.date-time-selector,.review-section,.addons-grid{grid-template-columns:1fr}}@media (max-width:480px){.booking-progress{gap:var(--spacing-sm);flex-wrap:wrap}.progress-line{display:none}.progress-step{gap:2px}.progress-number{width:32px;height:32px;font-size:.85rem}.progress-label{font-size:.7rem}.step-navigation{flex-direction:column}.step-navigation .btn{width:100%}}.custom-modal{z-index:9999;visibility:hidden;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.custom-modal.show{visibility:visible}.custom-modal-backdrop{z-index:1;background:#00000080;position:absolute;inset:0}.custom-modal-dialog{z-index:2;background:var(--color-white);border-radius:8px;width:90vw;max-width:500px;position:relative;overflow:hidden;box-shadow:0 10px 40px #0000004d}.custom-modal-header{border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.custom-modal-title{color:#333;margin:0;font-size:1.25rem;font-weight:600}.custom-modal-close{cursor:pointer;color:#6c757d;background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:1.5rem;display:flex}.custom-modal-close:hover{color:#000}.custom-modal-body{color:#333;padding:1.5rem;font-size:1rem}.custom-modal-footer{border-top:1px solid #e9ecef;justify-content:flex-end;gap:.75rem;padding:1.5rem;display:flex}
