.booking-main{min-height:100svh;padding:calc(var(--nav-h) + 64px) 0 80px;background:radial-gradient(740px 460px at 86% 4%,rgba(232,189,99,.09),transparent 70%)}
.booking-shell{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px;align-items:start}.booking-aside,.booking-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#151419,#0c0b0f);box-shadow:var(--shadow)}.booking-aside{padding:32px;position:sticky;top:calc(var(--nav-h) + 24px)}.booking-aside h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.6rem,5vw,4.8rem);line-height:.94;letter-spacing:-.045em;margin:.5rem 0 1rem}.booking-aside p{color:var(--muted);font-size:.92rem}.booking-progress{display:grid;gap:8px;margin-top:28px}.progress-step{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:10px;color:var(--dim);font-size:.76rem}.progress-step span:first-child{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.68rem}.progress-step.active{color:var(--ink)}.progress-step.active span:first-child,.progress-step.done span:first-child{border-color:var(--gold);background:rgba(232,189,99,.12);color:var(--gold)}.booking-card{padding:clamp(24px,4vw,46px);min-height:620px}.booking-step{display:none}.booking-step.active{display:block}.step-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:800}.booking-step h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1;margin:.35rem 0 .7rem}.step-copy{color:var(--muted);margin:0 0 28px;max-width:64ch}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.choice{position:relative}.choice input{position:absolute;opacity:0;pointer-events:none}.choice label{display:block;border:1px solid var(--line);border-radius:18px;padding:18px;background:#0f0e12;cursor:pointer;min-height:118px;transition:border-color .18s,background .18s,transform .18s}.choice label:hover{transform:translateY(-2px);border-color:rgba(232,189,99,.44)}.choice input:checked+label{border-color:var(--gold);background:rgba(232,189,99,.09)}.choice strong{display:block;font-size:.92rem}.choice small{display:block;color:var(--muted);font-size:.76rem;margin-top:6px;line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.74rem;font-weight:800;letter-spacing:.03em}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:15px;background:#0c0b0f;color:var(--ink);padding:13px 14px;outline:none}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,189,99,.10)}.field-error{min-height:18px;color:var(--danger);font-size:.7rem}.booking-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.booking-actions .right{display:flex;gap:10px;margin-left:auto}.booking-actions button[disabled]{opacity:.55;cursor:not-allowed}.review-list{display:grid;gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden}.review-row{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 16px;background:#0f0e12;border-bottom:1px solid var(--line)}.review-row:last-child{border-bottom:0}.review-row b{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--gold)}.review-row span{font-size:.84rem;word-break:break-word}.submit-status{margin-top:18px;padding:14px 16px;border-radius:15px;background:#0d0c10;border:1px solid var(--line);font-size:.82rem;display:none}.submit-status.show{display:block}.submit-status.error{border-color:rgba(255,173,173,.4);color:#ffd0d0}.submit-status.success{border-color:rgba(185,237,197,.34);color:var(--ok)}.honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}.booking-note{margin-top:20px;color:var(--dim);font-size:.72rem}.booking-note a{text-decoration:underline}.success-panel{display:none;text-align:center;padding:50px 12px}.success-panel.show{display:block}.success-panel h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.7rem,6vw,5rem);margin:.3rem 0 1rem}.success-panel p{color:var(--muted);max-width:54ch;margin:0 auto 26px}
@media(max-width:900px){.booking-shell{grid-template-columns:1fr}.booking-aside{position:static}.booking-progress{grid-template-columns:repeat(5,1fr);gap:5px}.progress-step{display:grid;place-items:center}.progress-step span:last-child{display:none}.booking-card{min-height:auto}}
@media(max-width:620px){.booking-main{padding-top:calc(var(--nav-h) + 34px)}.booking-aside{padding:24px 20px}.booking-aside h1{font-size:3rem}.booking-card{padding:24px 18px}.choice-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.booking-actions{align-items:stretch;flex-direction:column}.booking-actions .right{margin-left:0;width:100%}.booking-actions .button{flex:1}.review-row{grid-template-columns:1fr;gap:4px}.booking-progress{margin-top:18px}.progress-step span:first-child{width:26px;height:26px}}

.choice input:focus-visible+label{outline:3px solid var(--gold);outline-offset:3px}
.booking-step [hidden]{display:none}
#bookingReviewTitle{scroll-margin-top:calc(var(--nav-h) + 16px)}

.booking-fallback{margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:15px;font-size:.82rem;overflow-wrap:anywhere}
.booking-fallback a:not(.button){color:var(--gold);text-decoration:underline}
.booking-fallback p{margin:8px 0 12px}
.booking-fallback summary{cursor:pointer}
.booking-fallback > .button + details{margin-top:12px}

.booking-step[data-booking-step="service"] .choice-grid{margin-top:18px}

@media(max-width:620px){
  .booking-aside{padding:16px 18px}
  .booking-aside h1{font-size:2.25rem;margin:0}
  .booking-aside .booking-progress{margin-top:12px}
  .booking-aside .booking-note{margin:10px 0 0}
  .booking-card{padding:20px 16px}
  .choice label{min-height:0;padding:10px 12px}
  .choice small{margin-top:3px}
  .review-row{grid-template-columns:minmax(70px, .45fr) minmax(0, 1fr);gap:8px;padding:10px 12px}
}
