.booking-shell{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:22px}
.booking-panel{background:#0e1745;border:1px solid #223345;padding:20px}
.booking-steps{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.booking-steps span{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid #34485a;padding:8px 10px;color:#b9c0dc;transition:.2s ease}
.booking-steps span.on{border-color:#ffe500;color:#ffe500;background:rgba(255,229,0,.06)}
.booking-step-panel{scroll-margin-top:92px}
.step-intro{margin-top:0}
.step-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:8px}
.step-panel-head h2{margin-bottom:8px}
.step-back{border:0;background:transparent;color:#ff3bd4;font:inherit;font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;padding:7px 0;cursor:pointer;white-space:nowrap}
.calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:18px 0 12px}
.calendar-head h3{text-align:center;margin:0;font-size:1.08rem}
.calendar-head .btn{padding:9px 11px;min-height:auto;font-size:.72rem}
.calendar-key{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 14px;color:#b9c0dc;font-size:.72rem}
.calendar-key span{display:inline-flex;align-items:center;gap:7px}
.calendar-key i{width:10px;height:10px;border-radius:50%;display:inline-block;background:#fff;border:1px solid #617184}
.calendar-key .limited i{background:#d99a2b;border-color:#f0b94b}
.calendar-key .booked i{background:#ff3bd4;border-color:#55bfff}
.calendar-key .unavailable i{background:#152433;border-color:#405365}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.calendar-dow{text-align:center;color:#8ea0b4;font-size:.72rem;padding:5px}
.calendar-day{height:62px;min-width:0;width:100%;box-sizing:border-box;border:1px solid #3c4a59;background:#f7f9fc;color:#0d1117;font-weight:900;padding:7px;position:relative;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.calendar-day:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 0 2px #ffe500 inset}
.calendar-day:disabled{cursor:not-allowed}
.calendar-day.empty{background:transparent;border-color:transparent}
.calendar-day.past{opacity:.18}
.calendar-day.limited{background:#d99a2b;color:#111820;border-color:#f0b94b}
.calendar-day.limited small{color:#2a2110}
.calendar-day.booked{background:#ff3bd4;color:#f4fbff;border-color:#55bfff}
.calendar-day.booked small{color:#d9f2ff}
.calendar-day.busy{background:#132231;color:#6f8296;border-color:#25394c;opacity:.72}
.calendar-day.busy small{color:#7f91a3}
.calendar-day.today:not(.busy):not(.limited):not(.booked):not(.past){border-color:#ff3bd4;box-shadow:0 0 0 1px #ff3bd4 inset}
.calendar-day.selected{outline:3px solid #ffe500;outline-offset:1px;background:#fffbe8}
.calendar-day small{display:block;max-width:100%;font-size:.54rem;margin-top:5px;line-height:1.05;font-weight:800;text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere;word-break:break-word}
.calendar-day .today-label{color:#047d9e}
.step-selection{margin-top:18px;padding:15px;border:1px solid #31465b;background:#0b1236;display:flex;align-items:center;justify-content:space-between;gap:16px}
.step-selection>div{min-width:0}.step-selection span{display:block;color:#8fa2b6;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.step-selection strong{display:block;color:#fff;font-size:1rem}
.step-continue{min-width:150px}
.service-choice{width:100%;text-align:left;background:#0b1236;color:#fff;border:1px solid #2d4256;padding:17px;margin:10px 0;display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:start;transition:.15s ease}
.service-choice:hover{border-color:#48647d}.service-choice.on{border-color:#ffe500;box-shadow:0 0 0 1px #ffe500 inset;background:#091724}
.service-choice strong{font-size:1.02rem;line-height:1.25}.service-choice p{grid-column:1/-1;margin:.25rem 0;color:#aab5c9;line-height:1.45}.service-choice .service-price{color:#ff3bd4;font-weight:900;text-align:right;white-space:nowrap}.service-choice .service-state{grid-column:1/-1;color:#ffe500;font-size:.67rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.variant-box{margin:14px 0;padding:14px;border:1px solid #283d51;background:#04101a}.variant-box>span{display:block;color:#b9c0dc;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}
.variant-row{display:flex;gap:8px;flex-wrap:wrap;margin:0}.variant-row button{background:#0b1236;color:#fff;border:1px solid #405468;padding:11px 13px;font:inherit;cursor:pointer}.variant-row button.on{border-color:#ff3bd4;color:#ff3bd4;box-shadow:0 0 0 1px #ff3bd4 inset}
.booking-price{font-size:1.55rem;font-weight:900;color:#ffe500;margin:.35rem 0}
.booking-note{border-left:3px solid #ff3bd4;background:#0b1236;padding:12px;margin:10px 0;color:#c7d1dc;line-height:1.5}
.booking-note.warn{border-left-color:#ffe500}.booking-note.bad{border-left-color:#ff6578}
.terms-row{display:flex;gap:10px;align-items:flex-start}.terms-row input{width:auto;margin-top:4px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}.form-grid label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#b9c0dc}.form-grid input,.form-grid textarea{width:100%;margin-top:6px;padding:12px;border:1px solid #34485a;background:#030a11;color:#fff;font:inherit}.form-grid textarea{min-height:100px}
.booking-final{width:100%;margin-top:14px}
.summary-card{position:sticky;top:100px}.summary-card h3{margin-top:0}.summary-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #223345;padding:9px 0}.summary-line strong{text-align:right}.season-banner{border:1px solid #ffe500;padding:14px;margin-bottom:18px}.hidden{display:none!important}
@media(max-width:860px){.booking-shell{grid-template-columns:minmax(0,1fr)}.summary-card{position:static}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:auto}.calendar-day{height:54px;padding:5px;font-size:.86rem}.step-selection{align-items:stretch;flex-direction:column}.step-continue{width:100%;min-width:0}.service-choice{grid-template-columns:minmax(0,1fr)}.service-choice .service-price{text-align:left}.step-panel-head{display:block}.step-back{margin:-4px 0 8px}.summary-card{display:none}}
@media(max-width:470px){.booking-panel{padding:15px}.calendar-grid{gap:4px}.calendar-day{height:48px;padding:4px;font-size:.82rem}.calendar-dow{font-size:.63rem;padding:3px}.calendar-head{gap:6px}.calendar-head .btn{font-size:.64rem;padding:8px}.calendar-head h3{font-size:.96rem}}

/* v6.9.8 booking travel + lead-time refinements */
.travel-panel{border:1px solid #2d4256;background:#04101a;padding:16px;margin-top:2px}
.travel-panel h3{margin:.2rem 0 .5rem}
.travel-panel label{margin-top:12px}
.travel-panel select{width:100%;margin-top:6px;padding:12px;border:1px solid #34485a;background:#030a11;color:#fff;font:inherit}
.travel-estimate{margin-top:10px;padding:11px 12px;border:1px solid #2d4256;background:#0b1236;color:#aab5c9;line-height:1.4}
.travel-estimate.ok{border-color:#ff3bd4;color:#e9fbff}
.travel-estimate.bad{border-color:#ff6578;color:#ffdce3}
.payment-breakdown{margin-top:-2px;color:#ff3bd4;font-weight:900;line-height:1.45}
.calendar-day.today.past{opacity:.48;border-color:#ff3bd4;color:#4c5d6f;background:#e9eef4}
.calendar-day.today.past .today-label{color:#496879}

/* v6.9.9 next-day cutoffs + inspection appointments */
.service-choice:disabled{cursor:not-allowed;opacity:.48;border-color:#2a3846;background:#040b12}
.service-choice.closed:hover{border-color:#2a3846}
.service-cutoff{grid-column:1/-1;display:block;margin-top:2px;padding:8px 10px;border-left:3px solid #ff3bd4;background:#071824;color:#d9f8ff;font-size:.72rem;line-height:1.4;font-weight:800}
.service-cutoff.closed{border-left-color:#ff6578;color:#ffdce3;background:#190c12}
.cutoff-note{border-left-color:#ffe500}
.inspection-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.inspection-slot{min-height:48px;border:1px solid #405468;background:#0b1236;color:#fff;font:inherit;font-weight:900;cursor:pointer;padding:10px;transition:.15s ease}
.inspection-slot:hover{border-color:#ff3bd4;color:#ff3bd4}
.inspection-slot.on{background:#ffe500;color:#07101b;border-color:#ffe500;box-shadow:0 0 0 1px #ffe500 inset}
@media(max-width:700px){.inspection-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:430px){.inspection-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v6.11.0 — equal-width blocked calendar cells */
.calendar-day.busy small{font-size:.48rem;letter-spacing:0}

/* Booking terms acceptance record — v6.15.6 */
.terms-acceptance-record{margin:12px 0 16px;padding:16px;border:1px solid rgba(255,229,0,.38);background:linear-gradient(145deg,rgba(8,23,37,.96),rgba(3,10,17,.96));box-shadow:0 12px 34px rgba(0,0,0,.18)}
.terms-acceptance-record.accepted{border-color:rgba(88,230,169,.62)}
.terms-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.terms-record-head strong{display:block;font-size:1.06rem;margin-top:4px}.terms-record-status{font-size:.72rem;font-weight:900;letter-spacing:.11em;padding:6px 9px;border:1px solid #6b5c1b;color:#ffe500;background:#151208}.terms-record-status.ok{border-color:#2c7456;color:#58e6a9;background:#07170f}
.terms-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.terms-record-grid>div{padding:10px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16)}.terms-record-grid span,.terms-record-docs>span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:4px}.terms-record-grid strong{font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}
.terms-record-docs{margin-top:10px;padding:10px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16)}.terms-record-docs a{display:block;margin:5px 0;color:var(--cyan,#ff3bd4);font-weight:800;text-decoration:none}.terms-record-docs a:hover{text-decoration:underline}.terms-acceptance-record p{margin:10px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}
@media(max-width:620px){.terms-record-grid{grid-template-columns:minmax(0,1fr)}.terms-record-head{align-items:center}}

.master-booking-closure{margin:0 0 18px!important;border:1px solid rgba(255,69,88,.55)!important;border-left:5px solid #ff4558!important;background:linear-gradient(90deg,rgba(255,69,88,.12),rgba(255,191,31,.04))!important;color:#eef4fb!important}.master-booking-closure strong{color:#ff9aa4;font-size:1rem}.master-booking-closure small{display:block;margin-top:7px;color:#aebdcd;line-height:1.45}

/* v6.28.12 — E46 full-payment / deposit choice */
.payment-choice-panel{border-left-color:#ffe500!important}
.payment-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.payment-choice{display:flex;gap:10px;align-items:flex-start;border:1px solid #31465b;background:#030a11;padding:13px;cursor:pointer;text-transform:none!important;letter-spacing:0!important;color:#fff!important}
.payment-choice.on{border-color:#ffe500;box-shadow:0 0 0 1px #ffe500 inset;background:#111308}
.payment-choice input{width:auto!important;margin:3px 0 0!important;accent-color:#ffe500}
.payment-choice span{display:block}.payment-choice b{display:block;color:#fff;margin-bottom:4px}.payment-choice small{display:block;color:#aebdcd;line-height:1.45;font-size:.78rem}
@media(max-width:620px){.payment-choice-grid{grid-template-columns:minmax(0,1fr)}}

/* 2026-10-20 — fully booked days and live payment holds are genuinely disabled. */
.calendar-day.booked:disabled{opacity:1;pointer-events:none;cursor:not-allowed;background:#ff3bd4;color:#f4fbff;border-color:#55bfff}
.calendar-day.booked:disabled small{color:#d9f2ff}
.calendar-day.held:disabled{opacity:1;pointer-events:none;cursor:not-allowed;background:#172739;color:#ffe500;border-color:#b17d2c}
.calendar-day.held:disabled small{color:#ffe500}

/* Next available date + held-date banner (23 Oct 2026) */
.next-available{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:14px 16px;border:1px solid var(--yellow,#ffe500);background:rgba(255,229,0,.07)}
.next-available small{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow,#ffe500);font-weight:900}
.next-available strong{display:block;font-size:1.1rem;color:#fff}
.next-available.none{border-color:rgba(255,255,255,.25);background:transparent}
.next-available .btn{min-height:44px}
.service-choice .next-avail{display:block;margin-top:8px;font-size:.8rem;font-weight:800;color:var(--yellow,#ffe500)}
.held-date-banner{border-left:4px solid var(--yellow,#ffe500);margin:0 0 14px}
.held-date-banner .btn{margin-top:8px}

/* Contextual service availability UX — 23 Oct 2026 */
.calendar-day.inspect-only{cursor:pointer}
.calendar-day.inspect-only:hover{outline:2px solid #ffe500;outline-offset:0;opacity:1}
.calendar-day.held{background:#172739;color:#ffe500;border-color:#b17d2c}
.calendar-day.held small{color:#ffe500}
.calendar-day.booked.selected{background:#ff3bd4;color:#fff;border-color:#ffe500}
.calendar-day.held.selected{background:#172739;color:#ffe500;border-color:#ffe500}
.calendar-day.busy.inspect-only{opacity:.8}
.service-choice.unavailable-service{cursor:default;opacity:1;border-color:#4d4650;background:#091018}
.service-choice.unavailable-service:hover{border-color:#4d4650}
.service-choice.unavailable-service .service-price{color:#b5c6d2}
.service-choice.unavailable-service .service-state{color:#ffcf60}
.service-choice .next-avail{grid-column:1/-1;margin-top:2px;font-size:.85rem;line-height:1.45}
.service-choice .next-avail.none{color:#aeb9c7;font-weight:500}
.service-choice .next-avail.none a{color:#ffe500}
.service-choice .service-next-date{grid-column:1/-1;justify-self:start;min-height:40px;padding:9px 16px;margin-top:2px}
.service-date-notice{margin:8px 0 18px}
@media(max-width:470px){.service-choice .service-next-date{width:100%}}

/* Combined track-day support + vehicle transport enquiry */
.combined-quote-tag {display:inline-flex;align-self:flex-start;padding:5px 9px;margin-top:8px;border:1px solid #f5d845;border-radius:6px;color:#f5d845;font-size:.73rem;font-weight:750;letter-spacing:.06em;}
.combined-transport-form {padding:22px;border:1px solid rgba(245,216,69,.43);border-radius:14px;background:rgba(245,216,69,.035);}
.combined-transport-form .form-grid{gap:14px;margin-top:15px;}
.combined-transport-form h3 {margin:9px 0;}
.combined-transport-form textarea {min-height:76px;width:100%;}
.combined-transport-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;}
.combined-transport-checkbox input{width:auto;min-width:19px;height:19px;}
.combined-quote-notice{border-left:3px solid #f5d845;}
@media(max-width:600px){.combined-transport-form{padding:14px}.combined-transport-form .form-grid{grid-template-columns:minmax(0,1fr)}}

/* Essential date-request card */
.essential-booking-card{margin:0 0 16px;background:#0b1236;border:1px solid #ff3bd4;padding:17px;color:#edf5ff}
.essential-booking-card h3{margin:5px 0 8px;font-size:1.2rem;color:#fff}
.essential-booking-card p{margin:6px 0 10px;color:#c4d3e3;line-height:1.5}
.essential-booking-card .ess-rates{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 12px;color:#ffe500;font-weight:800}
.essential-booking-card .btn{display:inline-block}
/* Long price lines (e.g. combined support + transport) wrap instead of being cut off on phones */
.service-choice .service-price{white-space:normal;overflow-wrap:anywhere}
.service-choice{min-width:0}
