.booking-wrap{max-width:1440px;font-family:var(--font-dm);margin:0 auto;padding:48px 80px 64px}.booking-steps{flex-wrap:wrap;justify-content:center;align-items:center;gap:0;display:flex}.booking-steps-wrap{align-items:center;display:inline-flex}.booking-step{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:8px;font-size:12px;display:inline-flex}.booking-step-num{font-weight:400}.booking-step-label{font-weight:500}.booking-step--pending{color:#9aabb9}.booking-step--active{color:#0b1d32;font-weight:600}.booking-step--active .booking-step-num,.booking-step--active .booking-step-label{font-weight:600}.booking-step--done{color:#c8a882}.booking-step-line{background:#cdd5dc;width:32px;height:1px;margin:0 10px;display:inline-block}.booking-heading{text-align:left;margin-top:32px;margin-bottom:40px}.booking-h1{font-family:var(--font-playfair);color:#0b1d32;letter-spacing:-.03em;margin:0 0 8px;font-size:56px;font-weight:700;line-height:1.05}.booking-h1-sub{font-family:var(--font-playfair);color:#617a93;margin:0;font-size:18px;font-style:italic}.booking-row{align-items:stretch;gap:20px;display:flex}.booking-row>section,.booking-row>aside{flex-direction:column;display:flex}.booking-calendar-card{flex:1.2}.booking-times-card{flex:1}.booking-form-card{flex:1.2}.booking-summary-card{background:#fafafa;flex:1}.booking-card{background:#fff;border-radius:20px;padding:32px;overflow:hidden}.booking-eyebrow{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.12em;color:#6a7f95;margin-bottom:20px;font-size:11px;font-weight:500}.booking-eyebrow--tight{margin-bottom:6px}.booking-month-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.booking-month-nav{color:#0b1d32;cursor:pointer;background:#fff;border:1px solid #d9e1ea;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,border-color .15s;display:inline-flex}.booking-month-nav:hover:not(:disabled){background:#f4f1eb}.booking-month-nav:disabled{color:#cdd5dc;cursor:not-allowed;border-color:#e8edf2}.booking-month-label{font-family:var(--font-playfair);color:#0b1d32;font-size:28px;line-height:1}.booking-month-name{font-weight:700}.booking-month-year{font-style:italic;font-weight:400}.booking-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;display:grid}.booking-weekday{text-align:center;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.1em;color:#9aabb9;font-size:11px}.booking-days-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.booking-day{aspect-ratio:1;color:#0b1d32;min-height:40px;font-family:var(--font-dm);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:14px;font-weight:500;transition:background .15s}.booking-day--muted{color:#cdd5dc;cursor:not-allowed}.booking-day--muted:hover{background:0 0}.booking-day--today{color:#0b1d32;border:1.5px solid #0b1d32;font-weight:600}.booking-day--avail:hover{background:#f0ede6}.booking-day--selected{color:#fff;background:#f5a878;border:none;border-radius:50%;font-weight:600}.booking-day--selected:hover{background:#f0956a}.booking-legend{flex-wrap:wrap;gap:20px;margin-top:16px;display:flex}.booking-legend-item{font-family:var(--font-dm);color:#6a7f95;align-items:center;gap:6px;font-size:12px;display:inline-flex}.booking-legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.booking-legend-dot--selected{background:#f5a878}.booking-legend-dot--today{background:0 0;border:1.5px solid #0b1d32;border-radius:3px}.booking-legend-dot--unavail{background:#cdd5dc}.booking-placeholder{color:#9aabb9;font-family:var(--font-dm);text-align:center;flex:1;justify-content:center;align-items:center;min-height:220px;font-size:14px;display:flex}.booking-day-heading{font-family:var(--font-playfair);color:#0b1d32;margin-bottom:10px;font-size:24px}.booking-day-name{font-weight:700}.booking-day-date{font-style:italic;font-weight:400}.booking-badge-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.booking-slots-pill{color:#22c55e;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.04em;background:#f0fff4;border-radius:100px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.booking-pill-dot{background:#22c55e;border-radius:50%;width:6px;height:6px}.booking-tz-label{font-family:var(--font-dm);color:#9aabb9;font-size:12px}.booking-slot-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.1em;color:#9aabb9;margin:16px 0 8px;font-size:11px}.booking-slots-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.booking-slot{color:#0b1d32;height:52px;font-family:var(--font-dm);cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s,color .15s}.booking-slot:hover:not(:disabled){background:#faf6ee;border-color:#c8a882}.booking-slot--selected,.booking-slot--selected:hover{color:#fff;background:#f5a878;border-color:#f5a878;font-weight:600}.booking-slot--disabled{color:#cdd5dc;cursor:not-allowed;background:#fff;border-color:#f0f0f0;text-decoration:line-through}.booking-selection{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.booking-selection-main{font-family:var(--font-playfair);color:#0b1d32;font-size:18px;font-weight:700}.booking-selection-right{font-family:var(--font-dm);color:#617a93;font-size:14px}.booking-cta{color:#006791;width:100%;height:56px;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:#a1dcff;border:none;border-radius:100px;margin-top:24px;font-size:15px;font-weight:600;transition:background .18s,transform .18s,box-shadow .18s;box-shadow:0 6px 24px #a1dcff8c}.booking-cta:hover:not(:disabled){background:#bce6ff;transform:scale(1.01);box-shadow:0 4px 16px #a1dcff59}.booking-cta:disabled{color:#9aabb9;cursor:not-allowed;background:#e2e8f0}.booking-form-card{padding:36px}.booking-form-heading{font-family:var(--font-playfair);color:#0b1d32;margin:0 0 28px;font-size:26px;font-weight:700}.booking-form-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.booking-field{margin-bottom:16px}.booking-input-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.1em;color:#6a7f95;margin-bottom:8px;font-size:11px;font-weight:500;display:block}.booking-input,.booking-textarea{width:100%;font-family:var(--font-dm);color:#0b1d32;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:14px 16px;font-size:15px;transition:border-color .15s,box-shadow .15s}.booking-input::-moz-placeholder{color:#9aabb9}.booking-textarea::-moz-placeholder{color:#9aabb9}.booking-input::placeholder,.booking-textarea::placeholder{color:#9aabb9}.booking-input:focus,.booking-textarea:focus{border-color:#a1dcff;outline:none;box-shadow:0 0 0 3px #a1dcff26}.booking-input--error,.booking-textarea--error{border-color:#f87171;box-shadow:0 0 0 3px #f871711f}.booking-textarea{resize:vertical;min-height:100px}.booking-phone-wrap{border:1.5px solid #e2e8f0;border-radius:10px;align-items:stretch;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.booking-phone-wrap:focus-within{border-color:#a1dcff;box-shadow:0 0 0 3px #a1dcff26}.booking-phone-wrap--error{border-color:#f87171;box-shadow:0 0 0 3px #f871711f}.booking-phone-prefix{color:#0b1d32;font-family:var(--font-dm);background:#f4f1eb;border-right:1px solid #e2e8f0;align-items:center;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.booking-phone-input{font-family:var(--font-dm);color:#0b1d32;background:#fff;border:none;outline:none;flex:1;padding:14px 16px;font-size:15px}.booking-phone-input::placeholder{color:#9aabb9}.booking-textarea-label-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.booking-optional-pill{font-family:var(--font-dm);color:#9aabb9;font-size:11px}.booking-error{font-family:var(--font-dm);color:#ef4444;margin-top:4px;font-size:12px}.booking-checkbox-card{background:#f8f4ee;border:1.5px solid #e8dfd1;border-radius:12px;margin-top:20px;padding:16px 20px;transition:border-color .15s}.booking-checkbox-card--error{border-color:#f87171}.booking-checkbox-label{cursor:pointer;align-items:flex-start;gap:14px;display:flex}.booking-checkbox{opacity:0;pointer-events:none;position:absolute}.booking-checkbox-box{background:#fff;border:1.5px solid #0b1d32;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;transition:background .15s;display:inline-flex}.booking-checkbox-box svg{opacity:0;transition:opacity .15s}.booking-checkbox:checked+.booking-checkbox-box{background:#0b1d32}.booking-checkbox:checked+.booking-checkbox-box svg{opacity:1}.booking-checkbox-text{flex-direction:column;gap:4px;display:flex}.booking-checkbox-main{font-family:var(--font-dm);color:#0b1d32;font-size:14px;line-height:1.45}.booking-checkbox-sub{font-family:var(--font-dm);color:#6a7f95;font-size:12px}.booking-submit-error{color:#b91c1c;font-family:var(--font-dm);background:#ef444414;border:1px solid #ef444440;border-radius:10px;margin-top:16px;padding:12px 16px;font-size:13px}.booking-paypal-section{border-top:1px solid #e8edf2;margin-top:24px;padding-top:24px}.booking-paypal-note{text-align:center;font-family:var(--font-dm);color:#617a93;margin-bottom:14px;font-size:13px}.booking-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.booking-actions--back-only{justify-content:flex-start;margin-top:16px}.booking-back-btn{color:#617a93;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:0 0;border:1.5px solid #d9e1ea;border-radius:100px;padding:14px 24px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.booking-back-btn:hover:not(:disabled){color:#0b1d32;background:#f4f1eb;border-color:#0b1d32}.booking-confirm-btn{color:#fff;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:#0b1d32;border:none;border-radius:100px;padding:14px 32px;font-size:13px;font-weight:600;transition:background .18s,transform .18s,box-shadow .18s}.booking-confirm-btn:hover:not(:disabled){background:#1c3149;transform:scale(1.02);box-shadow:0 8px 24px #0b1d3240}.booking-confirm-btn:disabled,.booking-back-btn:disabled{opacity:.6;cursor:not-allowed}.booking-summary-service{font-family:var(--font-playfair);color:#0b1d32;font-size:28px;font-weight:700;line-height:1.1}.booking-summary-sub{font-family:var(--font-playfair);color:#617a93;margin-top:4px;margin-bottom:24px;font-size:15px;font-style:italic}.booking-summary-divider{background:#e8edf2;height:1px;margin:20px 0}.booking-summary-rows{flex-direction:column;gap:16px;display:flex}.booking-summary-row{align-items:flex-start;gap:14px;display:flex}.booking-summary-icon{color:#617a93;width:40px;height:40px;font-family:var(--font-dm);background:#eef3f9;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.booking-summary-icon--date{gap:1px;line-height:1}.booking-summary-icon-mo{text-transform:uppercase;letter-spacing:.08em;color:#617a93;font-size:9px;font-weight:600}.booking-summary-icon-dy{color:#0b1d32;font-size:15px;font-weight:700}.booking-summary-icon--dur,.booking-summary-icon--loc{color:#0b1d32;font-size:14px;font-weight:700}.booking-summary-text-top{font-family:var(--font-dm);color:#0b1d32;font-size:14px;font-weight:600;line-height:1.35}.booking-summary-text-bot{font-family:var(--font-dm);color:#617a93;margin-top:3px;font-size:13px;line-height:1.5}.booking-payment-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.12em;color:#6a7f95;margin-bottom:12px;font-size:11px}.booking-payment-row{font-family:var(--font-dm);color:#617a93;justify-content:space-between;padding:6px 0;font-size:14px;display:flex}.booking-deposit-card{background:#0b1d32;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:20px 24px;display:flex}.booking-deposit-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.12em;color:#fff9;margin-bottom:4px;font-size:11px}.booking-deposit-sub{font-family:var(--font-dm);color:#fff6;font-size:12px}.booking-deposit-amount{font-family:var(--font-playfair);color:#fff;font-size:32px;font-weight:700}.booking-cancel-card{background:#1a3a55;border-radius:12px;align-items:flex-start;gap:12px;margin-top:12px;padding:16px 20px;display:flex}.booking-cancel-icon{color:#fff;background:#ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.booking-cancel-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.12em;color:#ffffffb3;margin-bottom:4px;font-size:11px}.booking-cancel-body{font-family:var(--font-dm);color:#fffc;font-size:13px;line-height:1.5}.booking-confirm-wrap{max-width:800px;margin:0 auto}.booking-confirm-card{text-align:left;padding:48px}.booking-confirm-check{background:#22c55e;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;display:flex}.booking-confirm-eyebrow{text-align:center;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.14em;color:#22c55e;margin-bottom:16px;font-size:12px;font-weight:600}.booking-confirm-heading{text-align:center;font-family:var(--font-playfair);color:#0b1d32;letter-spacing:-.025em;margin:0 0 16px;font-size:40px;font-weight:700}.booking-confirm-body{text-align:center;font-family:var(--font-dm);color:#617a93;max-width:480px;margin:0 auto;font-size:16px;line-height:1.6}.booking-ref-pill{background:#f4f1eb;border:1.5px solid #e2e8f0;border-radius:100px;justify-content:center;align-items:center;gap:12px;width:fit-content;margin:20px auto 0;padding:10px 24px;display:flex}.booking-ref-label{font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.12em;color:#9aabb9;font-size:11px}.booking-ref-num{font-family:var(--font-dm);color:#0b1d32;font-size:14px;font-weight:700}.booking-confirm-divider{background:#e8edf2;height:1px;margin:36px 0}.booking-confirm-grid{grid-template-columns:1fr 1fr;gap:32px;display:grid}.booking-confirm-row{align-items:center;gap:14px;display:flex}.booking-confirm-icon{width:48px;height:52px;font-family:var(--font-dm);background:#f0ede6;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.booking-confirm-icon-mo{text-transform:uppercase;letter-spacing:.08em;color:#617a93;font-size:10px;font-weight:600}.booking-confirm-icon-dy{color:#0b1d32;font-size:20px;font-weight:700}.booking-confirm-icon--dur{color:#0b1d32;font-size:16px;font-weight:700}.booking-confirm-title{font-family:var(--font-playfair);color:#0b1d32;font-size:18px;font-weight:700}.booking-confirm-sub{font-family:var(--font-dm);color:#617a93;margin-top:4px;font-size:13px}.booking-receipt-row{justify-content:space-between;padding:8px 0;display:flex}.booking-receipt-label{font-family:var(--font-dm);color:#0b1d32;font-size:14px;font-weight:600}.booking-receipt-label--muted{color:#617a93;font-weight:500}.booking-receipt-val{font-family:var(--font-dm);color:#0b1d32;font-size:14px;font-weight:600}.booking-receipt-val--muted{color:#617a93;font-weight:500}.booking-receipt-divider{background:#e8edf2;height:1px;margin:4px 0}.booking-receipt-sent{font-family:var(--font-dm);color:#9aabb9;margin-top:8px;font-size:13px}.booking-confirm-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.booking-confirm-foot-text{max-width:360px}.booking-confirm-next{font-family:var(--font-dm);color:#617a93;margin:8px 0 0;font-size:13px;line-height:1.55}.booking-confirm-buttons{flex-wrap:wrap;gap:12px;display:flex}.booking-ghost-btn{color:#0b1d32;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:0 0;border:1.5px solid #0b1d32;border-radius:100px;padding:14px 28px;font-size:13px;font-weight:600;transition:background .15s,transform .15s}.booking-ghost-btn:hover{background:#f4f1eb;transform:scale(1.02)}.booking-filled-btn{color:#fff;font-family:var(--font-dm);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:#0b1d32;border:none;border-radius:100px;padding:14px 28px;font-size:13px;font-weight:600;transition:background .18s,transform .18s,box-shadow .18s}.booking-filled-btn:hover{background:#1c3149;transform:scale(1.02);box-shadow:0 8px 24px #0b1d3240}@media (max-width:1280px){.booking-wrap{padding:48px 48px 64px}}@media (max-width:1024px){.booking-h1{font-size:44px}.booking-row{gap:16px}.booking-card{padding:28px}.booking-form-card{padding:32px}}@media (max-width:767px){.booking-wrap{padding:36px 24px 48px}.booking-row{flex-direction:column;gap:16px}.booking-calendar-card,.booking-times-card,.booking-form-card,.booking-summary-card{flex:none;width:100%}.booking-h1{font-size:38px}.booking-form-row{grid-template-columns:1fr}.booking-confirm-card{padding:32px 24px}.booking-confirm-heading{font-size:30px}.booking-confirm-grid{grid-template-columns:1fr;gap:28px}.booking-confirm-foot,.booking-confirm-buttons{flex-direction:column;align-items:stretch}.booking-confirm-buttons .booking-ghost-btn,.booking-confirm-buttons .booking-filled-btn{width:100%}.booking-steps{flex-direction:column;align-items:flex-start;gap:6px}.booking-step-line{display:none}.booking-step-num,.booking-step-label{font-size:11px}.booking-actions{justify-content:stretch}.booking-actions .booking-back-btn,.booking-actions .booking-confirm-btn{flex:1}}.booking-deposit-btn{color:#fff;width:100%;height:54px;font-family:var(--font-dm);letter-spacing:.02em;cursor:pointer;background:#0b1d32;border:none;border-radius:9999px;font-size:15px;font-weight:600;transition:background .15s,transform .1s}.booking-deposit-btn:hover:not(:disabled){background:#1a2d45}.booking-deposit-btn:active:not(:disabled){transform:scale(.985)}.booking-deposit-btn:disabled{opacity:.55;cursor:not-allowed}.payment-modal-overlay{z-index:300;-webkit-backdrop-filter:blur(4px);background:#020a1c8c;position:fixed;inset:0}.payment-modal{z-index:301;background:#fff;border-radius:24px;flex-direction:column;gap:16px;width:calc(100% - 32px);max-width:440px;max-height:calc(100vh - 32px);padding:28px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 24px 64px #00000040}.payment-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.payment-modal-title{font-family:var(--font-dm);color:#0b1d32;letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600;line-height:1.2}.payment-modal-close{color:#0b1d32;cursor:pointer;background:0 0;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:inline-flex}.payment-modal-close:hover{background:#f4f1eb}.payment-modal-note{font-family:var(--font-dm);color:#617a93;margin:0;font-size:13px;line-height:1.4}.payment-modal-options{flex-direction:column;gap:12px;display:flex}.payment-option{flex-direction:column;gap:10px;display:flex}.payment-option-btn{width:100%;height:54px;font-family:var(--font-dm);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.payment-option-btn:active:not(:disabled){transform:scale(.99)}.payment-option-btn:disabled{opacity:.55;cursor:not-allowed}.payment-option-btn--paypal{color:#fff;background:#0b1d32;border:none}.payment-option-btn--paypal:hover:not(:disabled),.payment-option-btn--paypal.is-active{background:#1a2d45}.payment-option-btn--card{color:#fff;background:#0b1d32;border:none}.payment-option-btn--card:hover:not(:disabled),.payment-option-btn--card.is-active{background:#1a2d45}.payment-option-paypal-wrap{padding:4px 2px 0}.payment-modal-error{color:#b91c1c;font-family:var(--font-dm);background:#ef444414;border:1px solid #ef444440;border-radius:10px;margin-top:4px;padding:12px 16px;font-size:13px}@media (max-width:520px){.payment-modal{border-radius:20px;gap:14px;padding:22px}.payment-modal-title{font-size:18px}}
