.booking-stepper{display:flex;justify-content:center;align-items:center;padding:var(--space-lg) 0 var(--space-xl);margin-top:var(--space-lg)}.booking-stepper__step{display:flex;align-items:center;cursor:pointer}.booking-stepper__circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-small);border:2px solid var(--color-secondary);background-color:var(--color-white);color:var(--color-text-light);transition:all var(--transition-base);flex-shrink:0}.booking-stepper__label{margin-left:var(--space-sm);font-family:var(--font-body);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text-light);white-space:nowrap;transition:color var(--transition-base)}.booking-stepper__line{width:48px;height:2px;background-color:var(--color-secondary);margin:0 var(--space-sm);flex-shrink:0;transition:background-color var(--transition-base)}.booking-stepper__step--active .booking-stepper__circle{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.booking-stepper__step--active .booking-stepper__label{color:var(--color-text);font-weight:var(--fw-semibold)}.booking-stepper__step--done .booking-stepper__circle{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-text-inverse)}.booking-stepper__step--done .booking-stepper__label{color:var(--color-text)}.booking-stepper__line--done{background-color:var(--color-success)}.booking-page{padding-top:120px;padding-bottom:var(--space-3xl);max-width:720px}.booking-section{display:none;opacity:0;transform:translateY(16px)}.booking-section--active{display:block;animation:sectionFadeIn 0.35s ease forwards}@keyframes sectionFadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.booking-section__title{font-family:var(--font-heading);font-size:var(--fs-h3);color:var(--color-text);margin-bottom:var(--space-xs);text-align:center}.booking-section__subtitle{color:var(--color-text-light);text-align:center;margin-bottom:var(--space-lg);font-size:var(--fs-small)}.booking-accordion{border:1px solid var(--color-secondary);border-radius:var(--radius-md);overflow:hidden}.booking-accordion__item{border:none;border-bottom:1px solid var(--color-secondary)}.booking-accordion__item:last-child{border-bottom:none}.booking-accordion__button{padding:var(--space-md) var(--space-lg);font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--color-text);background-color:var(--color-white);gap:var(--space-sm)}.booking-accordion__button:not(.collapsed){background-color:var(--color-bg-alt);color:var(--color-accent);box-shadow:none}.booking-accordion__button:focus{box-shadow:none;border-color:transparent;outline:2px solid var(--color-accent);outline-offset:-2px}.booking-accordion__button::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23675447'%3E%3Cpath d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E")}.booking-accordion__icon{width:24px;color:var(--color-primary);flex-shrink:0;text-align:center}.booking-accordion__label{flex-grow:1}.booking-accordion__badge{background-color:var(--color-secondary);color:var(--color-accent);font-size:0.75rem;font-weight:var(--fw-semibold);padding:2px 8px;border-radius:10px;margin-left:auto}.booking-service-row{display:flex;align-items:center;padding:12px var(--space-lg);border-bottom:1px solid rgba(223,206,192,0.5);cursor:pointer;transition:background-color var(--transition-fast);gap:12px;position:relative}.booking-service-row:last-child{border-bottom:none}.booking-service-row:hover{background-color:var(--color-bg-alt)}.booking-service-row--selected{background-color:rgba(201,162,135,0.08)}.booking-service-row__radio{width:20px;height:20px;border:2px solid var(--color-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.booking-service-row--selected .booking-service-row__radio{border-color:var(--color-primary)}.booking-service-row__radio-dot{width:10px;height:10px;border-radius:50%;background-color:transparent;transition:background-color var(--transition-fast)}.booking-service-row--selected .booking-service-row__radio-dot{background-color:var(--color-primary)}.booking-service-row__info{flex-grow:1;min-width:0}.booking-service-row__name{font-weight:var(--fw-medium);font-size:var(--fs-body);color:var(--color-text);line-height:1.3}.booking-service-row__desc{font-size:0.8rem;color:var(--color-text-light);margin-top:2px;line-height:1.3}.booking-service-row__meta{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0;font-size:var(--fs-small)}.booking-service-row__duration{color:var(--color-text-light);white-space:nowrap}.booking-service-row__duration i{margin-right:2px}.booking-service-row__price{font-weight:var(--fw-bold);color:var(--color-accent);white-space:nowrap;min-width:56px;text-align:right}.booking-selected-service{background-color:var(--color-bg-alt);border:1px solid var(--color-secondary);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-md)}.booking-selected-service__icon{width:40px;height:40px;border-radius:var(--radius-sm);background-color:var(--color-primary);color:var(--color-text-inverse);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.booking-selected-service__info{flex-grow:1;min-width:0}.booking-selected-service__name{font-weight:var(--fw-semibold);color:var(--color-text)}.booking-selected-service__meta{font-size:var(--fs-small);color:var(--color-text-light)}.booking-selected-service__change{width:32px;height:32px;border:1px solid var(--color-secondary);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:0.75rem;flex-shrink:0;transition:all var(--transition-fast)}.booking-selected-service__change:hover{border-color:var(--color-primary);color:var(--color-primary)}.booking-calendar{max-width:380px;margin:0 auto var(--space-lg);background:var(--color-white);border:1px solid var(--color-secondary);border-radius:var(--radius-md);padding:var(--space-md);position:relative}.booking-calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.booking-calendar__nav{width:36px;height:36px;border:1px solid var(--color-secondary);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.booking-calendar__nav:hover{border-color:var(--color-primary);color:var(--color-primary)}.booking-calendar__nav:disabled{opacity:0.3;cursor:not-allowed}.booking-calendar__month{font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-h5);color:var(--color-text);text-transform:capitalize}.booking-calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.booking-calendar__weekday{text-align:center;font-size:0.75rem;font-weight:var(--fw-semibold);color:var(--color-text-light);padding:4px 0;text-transform:uppercase}.booking-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.booking-calendar__cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text);cursor:default;transition:all var(--transition-fast);position:relative;min-height:40px}.booking-calendar__cell--empty{cursor:default}.booking-calendar__cell--disabled{color:var(--color-text-light);opacity:0.35;cursor:not-allowed}.booking-calendar__cell--holiday{background:#f8d7da;color:#842029;opacity:0.7;cursor:not-allowed;position:relative}.booking-calendar__cell--holiday::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#dc3545}.booking-calendar__cell--available{cursor:pointer;font-weight:var(--fw-semibold);color:var(--color-text)}.booking-calendar__cell--available::after{content:'';position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background-color:var(--color-success)}.booking-calendar__cell--available:hover{background-color:rgba(201,162,135,0.12)}.booking-calendar__cell--selected{background-color:var(--color-primary);color:var(--color-text-inverse)}.booking-calendar__cell--selected::after{background-color:var(--color-text-inverse)}.booking-calendar__cell--today{border:1px solid var(--color-secondary)}.booking-calendar__loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);background:rgba(255,255,255,0.85);border-radius:var(--radius-md);font-size:var(--fs-small);color:var(--color-text-light)}.booking-calendar__loading .spinner-border-sm{color:var(--color-primary)}.booking-timeslots{max-width:380px;margin:0 auto}.booking-timeslots__title{font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--color-text);text-align:center;margin-bottom:var(--space-md)}.booking-timeslots__group{margin-bottom:var(--space-md)}.booking-timeslots__label{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--color-text-light);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-xs)}.booking-timeslots__label i{color:var(--color-highlight)}.booking-timeslots__chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.booking-timeslot-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:1px solid var(--color-secondary);border-radius:var(--radius-sm);background-color:var(--color-white);font-family:var(--font-body);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);min-width:64px}.booking-timeslot-chip:hover{border-color:var(--color-primary);background-color:rgba(201,162,135,0.08);color:var(--color-accent)}.booking-timeslot-chip--selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);font-weight:var(--fw-semibold)}.booking-timeslot-chip--selected:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.booking-timeslots__empty{text-align:center;color:var(--color-text-light);font-size:var(--fs-small);padding:var(--space-lg) 0}.booking-timeslots__loading{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg) 0;color:var(--color-text-light);font-size:var(--fs-small)}.booking-timeslots__loading .spinner-border-sm{color:var(--color-primary)}.booking-summary{background-color:var(--color-bg-alt);border:1px solid var(--color-secondary);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl);display:flex;gap:var(--space-lg);flex-wrap:wrap}.booking-summary__item{display:flex;align-items:center;gap:var(--space-sm)}.booking-summary__item i{color:var(--color-primary);width:16px;text-align:center}.booking-summary__label{font-size:0.75rem;color:var(--color-text-light);text-transform:uppercase;letter-spacing:0.02em}.booking-summary__value{font-weight:var(--fw-semibold);font-size:var(--fs-small);color:var(--color-text)}.booking-form{max-width:520px;margin:0 auto}.booking-form .form-label{font-weight:var(--fw-medium);font-size:var(--fs-small);color:var(--color-text);margin-bottom:var(--space-xs)}.booking-form .form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 0.2rem rgba(201,162,135,0.2)}.booking-form .form-text{font-size:0.8rem;color:var(--color-text-light)}.booking-form .form-check-label{font-size:var(--fs-small)}.booking-form .form-check-label a{color:var(--color-primary);text-decoration:underline}.booking-form .form-check-input:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.booking-confirm{text-align:center;max-width:520px;margin:0 auto}.booking-confirm__icon{width:72px;height:72px;border-radius:50%;background-color:rgba(122,182,122,0.12);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg)}.booking-confirm__icon i{font-size:2rem;color:var(--color-success)}.booking-confirm__icon--animate{animation:checkmarkPop 0.5s ease forwards}@keyframes checkmarkPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}.booking-confirm__title{font-family:var(--font-heading);font-size:var(--fs-h3);color:var(--color-text);margin-bottom:var(--space-sm)}.booking-confirm__subtitle{color:var(--color-text-light);font-size:var(--fs-body);margin-bottom:var(--space-xl)}.booking-confirm__card{background-color:var(--color-bg-alt);border:1px solid var(--color-secondary);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-lg);text-align:left}.booking-confirm__card-title{font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--color-accent);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-secondary)}.booking-confirm__detail{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) 0}.booking-confirm__detail i{color:var(--color-primary);width:20px;text-align:center;margin-top:3px}.booking-confirm__detail-label{font-size:0.75rem;color:var(--color-text-light)}.booking-confirm__detail-value{font-weight:var(--fw-medium);color:var(--color-text)}.booking-confirm__calendar-links{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.booking-confirm__calendar-links .btn{border-color:var(--color-secondary);color:var(--color-text-light);font-size:var(--fs-small);border-radius:var(--radius-sm)}.booking-confirm__calendar-links .btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.booking-confirm__notice{background-color:rgba(91,192,222,0.08);border:1px solid rgba(91,192,222,0.2);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl);display:flex;align-items:center;gap:var(--space-md);text-align:left}.booking-confirm__notice i{color:var(--color-info);font-size:1.25rem;flex-shrink:0}.booking-confirm__notice p{margin:0;font-size:var(--fs-small);color:var(--color-text)}.booking-nav{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-xl);gap:var(--space-md)}.btn-booking-next{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:0.04em;padding:12px 28px;border-radius:var(--radius-sm);transition:all var(--transition-base);font-size:var(--fs-small)}.btn-booking-next:hover,.btn-booking-next:focus{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.btn-booking-next:disabled{background-color:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-text-light);cursor:not-allowed;opacity:1}.btn-booking-back{background-color:transparent;border:1px solid var(--color-secondary);color:var(--color-text-light);font-weight:var(--fw-medium);padding:12px 28px;border-radius:var(--radius-sm);transition:all var(--transition-base);font-size:var(--fs-small)}.btn-booking-back:hover{border-color:var(--color-primary);color:var(--color-text)}.booking-empty{text-align:center;padding:var(--space-3xl) var(--space-md);color:var(--color-text-light)}.booking-empty i{font-size:3rem;color:var(--color-secondary);margin-bottom:var(--space-md);display:block}@media (max-width:575px){.booking-stepper__label{display:none}.booking-stepper__line{width:32px}.booking-stepper__circle{width:36px;height:36px}.booking-service-row{flex-wrap:wrap;padding:10px var(--space-md)}.booking-service-row__meta{width:100%;padding-left:32px;margin-top:4px}.booking-summary{flex-direction:column;gap:var(--space-sm)}.booking-nav{flex-direction:column-reverse}.booking-nav .btn{width:100%}.booking-calendar{max-width:100%}.booking-timeslots{max-width:100%}.booking-timeslot-chip{padding:10px 14px;font-size:var(--fs-body)}.booking-confirm__title{font-size:var(--fs-h4)}.booking-confirm__calendar-links{flex-direction:column}}@media (max-width:375px){.booking-page{padding-top:90px}.booking-stepper{padding:var(--space-md) 0 var(--space-md)}.booking-stepper__circle{width:32px;height:32px;font-size:0.75rem}.booking-stepper__line{width:24px}}@media (min-width:576px) and (max-width:767px){.booking-stepper__label{font-size:0.8rem}}