:root{--pink:#ff337f;--pink-dim:#cc2966;--pink-glow:rgba(255,51,127,.15);--bg:#0a0a0a;--bg-card:#141414;--bg-card-hover:#1a1a1a;--border:#2a2a2a;--border-active:#ff337f;--text:#f0f0f0;--text-dim:#888;--text-bright:#fff;--radius:12px;--radius-sm:8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Poppins,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;padding:0 16px}.booking-page{max-width:540px;margin:0 auto;padding:24px 0 80px}.step-indicator{display:flex;gap:6px;margin-bottom:24px}.step-dot{height:3px;flex:1 1;border-radius:2px;background:var(--border);transition:background .3s}.step-dot.active{background:var(--pink)}.step-dot.done{background:var(--pink-dim)}.step-title{font-size:22px;font-weight:600;margin-bottom:4px;color:var(--text-bright)}.step-subtitle{margin-bottom:20px}.back-btn,.step-subtitle{font-size:14px;color:var(--text-dim)}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;font-family:inherit;cursor:pointer;margin-bottom:16px;padding:4px 0}.back-btn:hover{color:var(--text)}.service-grid{display:flex;flex-direction:column;gap:10px}.service-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .2s}.service-card:hover{background:var(--bg-card-hover);border-color:var(--pink)}.service-card.selected{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink),0 0 20px var(--pink-glow)}.service-name{font-size:15px;font-weight:500;color:var(--text-bright);margin-bottom:4px}.service-meta{font-size:13px;color:var(--text-dim)}.variant-list{display:flex;flex-direction:column;gap:8px}.variant-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.variant-card:hover{background:var(--bg-card-hover);border-color:var(--pink)}.variant-card.selected{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink),0 0 20px var(--pink-glow)}.variant-name{font-size:14px;font-weight:500;color:var(--text-bright)}.variant-desc{font-size:12px;color:var(--text-dim);margin-top:2px}.variant-right{text-align:right;flex-shrink:0;margin-left:12px}.variant-price{font-size:16px;font-weight:600;color:var(--pink)}.variant-duration{font-size:12px;color:var(--text-dim)}.calendar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.cal-title{font-size:16px;font-weight:600;color:var(--text-bright)}.cal-nav{background:none;border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:var(--radius-sm);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.cal-nav:hover{border-color:var(--pink);color:var(--pink)}.cal-nav:disabled{opacity:.3;cursor:default}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;text-align:center}.cal-dow{font-size:11px;font-weight:500;color:var(--text-dim);padding:4px 0;text-transform:uppercase}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:var(--radius-sm);cursor:pointer;border:none;background:none;color:var(--text);font-family:inherit;transition:all .15s}.cal-day:hover:not(:disabled){background:var(--bg-card-hover);color:var(--pink)}.cal-day.selected{background:var(--pink);color:#fff;font-weight:600}.cal-day.today{border:1px solid var(--border)}.cal-day.unavailable,.cal-day:disabled{color:#333;cursor:default}.time-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:16px}.time-slot{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;text-align:center;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;color:var(--text);transition:all .2s}.time-slot:hover{border-color:var(--pink);color:var(--pink)}.time-slot.selected{background:var(--pink);border-color:var(--pink);color:#fff}.time-slot.selected .slot-upcharge{color:hsla(0,0%,100%,.85)}.slot-upcharge{display:block;font-size:11px;font-weight:600;color:var(--pink);margin-top:2px}.no-consult-dates,.no-slots{text-align:center;padding:32px 16px;color:var(--text-dim);font-size:14px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input{width:100%;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:15px;font-family:inherit;outline:none;transition:border-color .2s}.form-input:focus{border-color:var(--pink)}.form-input::placeholder{color:#555}.checkbox-group{margin-top:20px;display:flex;flex-direction:column;gap:12px}.checkbox-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px;color:var(--text-dim);line-height:1.4}.checkbox-label input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;min-width:20px;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);cursor:pointer;position:relative;margin-top:1px}.checkbox-label input[type=checkbox]:checked{background:var(--pink);border-color:var(--pink)}.checkbox-label input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.btn-primary{width:100%;padding:14px;background:var(--pink);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s;margin-top:24px}.btn-primary:hover{background:var(--pink-dim)}.btn-primary:disabled{opacity:.4;cursor:default}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.summary-row+.summary-row{border-top:1px solid var(--border)}.summary-label{color:var(--text-dim)}.summary-value{color:var(--text-bright);font-weight:500;text-align:right}.summary-total{font-size:18px;font-weight:700;color:var(--pink)}.confirmation{text-align:center;padding:40px 0}.confirm-icon{width:64px;height:64px;background:var(--pink-glow);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:28px;border:2px solid var(--pink);color:var(--pink)}.confirm-title{font-size:22px;font-weight:600;color:var(--text-bright);margin-bottom:8px}.confirm-sub{font-size:14px;color:var(--text-dim);margin-bottom:24px}.loading{text-align:center;padding:40px;color:var(--text-dim)}.spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--pink);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(1turn)}}.error-msg{background:rgba(255,51,127,.1);border:1px solid rgba(255,51,127,.3);border-radius:var(--radius-sm);padding:12px 16px;font-size:14px;color:var(--pink);margin-bottom:16px}.addon-list{display:flex;flex-direction:column;gap:8px}.addon-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:12px}.addon-card:hover{background:var(--bg-card-hover);border-color:var(--pink)}.addon-card.selected{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink),0 0 20px var(--pink-glow)}.addon-card input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;min-width:20px;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);cursor:pointer;position:relative}.addon-card input[type=checkbox]:checked{background:var(--pink);border-color:var(--pink)}.addon-card input[type=checkbox]:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.addon-info{flex:1 1}.addon-name{font-size:14px;font-weight:500;color:var(--text-bright)}.addon-desc{font-size:12px;color:var(--text-dim);margin-top:2px}.addon-right{text-align:right;flex-shrink:0}.addon-price{font-size:14px;font-weight:600;color:var(--pink)}.addon-duration{font-size:12px;color:var(--text-dim)}.addon-summary{text-align:center;font-size:14px;color:var(--text-dim);margin-top:16px}.policy-text{font-size:13px;color:var(--text-dim);margin-top:20px;margin-bottom:4px;line-height:1.4}.legal-links{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:12px}.legal-links a{color:var(--text-dim);text-decoration:underline;text-underline-offset:2px}.legal-links a:hover{color:var(--pink)}.legal-sep{color:var(--text-dim)}.phone-step{padding-top:40px}.consult-banner{background:rgba(255,51,127,.08);border:1px solid rgba(255,51,127,.2);border-radius:var(--radius);padding:14px 16px;font-size:13px;color:var(--text);line-height:1.5;margin-bottom:20px}.deposit-preview{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.deposit-preview .summary-row{border-top:none}.deposit-preview .summary-label,.deposit-preview .summary-value{font-size:13px}.deposit-section{margin-bottom:24px}.btn-deposit{display:block;width:100%;padding:18px 24px;background:var(--pink);color:#fff;font-size:18px;font-weight:700;text-align:center;text-decoration:none;border:none;border-radius:var(--radius);cursor:pointer;letter-spacing:.3px;animation:deposit-pulse 2s ease-in-out infinite}.btn-deposit:hover{background:var(--pink-dim)}@keyframes deposit-pulse{0%,to{box-shadow:0 0 0 0 rgba(255,51,127,.5)}50%{box-shadow:0 0 0 8px rgba(255,51,127,0)}}.deposit-hold{text-align:center;font-size:13px;color:var(--text-dim);margin-top:10px}.deposit-banner{background:rgba(255,51,127,.1);border:1px solid rgba(255,51,127,.3);border-radius:var(--radius);padding:14px 16px;font-weight:500;color:var(--pink);line-height:1.4}.deposit-banner,.deposit-info{font-size:14px;text-align:center}.deposit-info{margin-top:12px;color:var(--text)}.deposit-note{font-size:13px;color:var(--text-dim);margin-top:4px}.prep-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:24px;text-align:left}.prep-title{font-size:15px;font-weight:600;color:var(--text-bright);margin-bottom:8px}.prep-note{font-size:14px;color:var(--text);line-height:1.6}.invoice-notice{background:rgba(255,200,50,.1);border:1px solid rgba(255,200,50,.3);border-radius:var(--radius-sm);padding:12px 16px;color:#e0b030}.invoice-email-line,.invoice-notice{font-size:13px;margin-bottom:16px;text-align:center}.invoice-email-line{color:var(--text-dim)}.email-mismatch{color:#e0b030}.btn-secondary{padding:12px 24px;background:transparent;color:var(--pink);border:1px solid var(--pink);border-radius:var(--radius);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:rgba(255,51,127,.1)}.waitlist-link-wrap{text-align:center;margin-top:16px}.waitlist-link{background:none;border:none;color:var(--pink);font-size:14px;cursor:pointer;text-decoration:underline;font-family:inherit}.waitlist-link:hover{color:var(--pink-dim)}.waitlist-form{margin-top:16px;text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.waitlist-info{font-size:14px;color:var(--text);margin-bottom:12px}.waitlist-phone{font-size:13px;color:var(--text-dim);margin-bottom:12px}.waitlist-success{margin-top:16px;font-size:14px;color:var(--pink);font-weight:500}.consult-type-grid{display:flex;flex-direction:column;gap:12px}.consult-type-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;cursor:pointer;transition:all .2s;text-align:center}.consult-type-card:hover{background:var(--bg-card-hover);border-color:var(--pink)}.consult-type-card.selected{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink),0 0 20px var(--pink-glow)}.consult-type-icon{font-size:32px;margin-bottom:8px}.consult-type-label{font-size:16px;font-weight:600;color:var(--text-bright);margin-bottom:4px}.consult-type-desc{font-size:13px;color:var(--text-dim)}.policy-section{margin-top:20px;margin-bottom:4px}.policy-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.policy-body{color:var(--text);line-height:1.6;margin-bottom:12px}.policy-body,.policy-check{font-size:13px}.policy-check a{color:var(--pink);text-decoration:underline;text-underline-offset:2px}.policy-check a:hover{opacity:.8}.service-card.consult-highlight{border:2px solid var(--pink);background:rgba(255,51,127,.08)}.service-card.consult-highlight:hover{background:rgba(255,51,127,.14)}.start-here-label{display:inline-block;background:var(--pink);color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:4px;margin-bottom:8px}.service-card.service-disabled{opacity:.35;cursor:default}.service-card.service-disabled:hover{background:var(--bg-card);border-color:var(--border)}.consult-first-note{font-size:12px;color:var(--text-dim);margin-top:6px;font-style:italic}.consult-location-banner{background:rgba(255,51,127,.08);border:1px solid rgba(255,51,127,.2);border-radius:var(--radius);padding:14px 16px;font-size:14px;color:var(--text);text-align:center;line-height:1.5;margin-bottom:20px}