[hidden]{display:none!important}.booking-page{max-width:1160px;margin:auto;padding:28px 30px 48px}.booking-heading{margin:14px 0 26px}.booking-heading h1{font-size:clamp(34px,5vw,58px);line-height:1.04;letter-spacing:-.045em;margin:10px 0 18px}.booking-heading h1 em{font-style:normal;color:var(--red)}.booking-heading>p:last-child{color:var(--muted);max-width:630px}.booking-notice{border:1px solid #574834;background:#2a2118;color:#ecd6b6;border-radius:8px;padding:14px 18px;font-size:14px;line-height:1.6}.booking-notice.is-preview{border-color:#ce9b4a;background:#372919;color:#ffe3ad}.booking-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.booking-steps li{color:#999eab;border-bottom:2px solid #333640;padding:12px 0;font-size:14px}.booking-steps li[aria-current]{border-color:var(--red);color:#fff}.booking-steps span{color:var(--red);margin-right:10px;font-size:12px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.booking-panel,.booking-summary{border:1px solid #383c47;border-radius:14px;padding:24px;background:#121419}.booking-panel h2{font-size:25px;letter-spacing:-.035em;margin:0 0 22px}.booking-panel h3{font-size:16px;line-height:1.5}.booking-panel label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:#dbdde5}.booking-panel input:not([type=checkbox]),.booking-panel select,.booking-panel textarea{width:100%;background:#1b1e26;border:1px solid #606571;color:#fff;border-radius:6px;min-height:46px;padding:11px 12px;font:inherit;font-size:16px}.booking-panel input:focus-visible,.booking-panel select:focus-visible,.booking-panel textarea:focus-visible{outline:2px solid #fc6c75;outline-offset:2px}.booking-panel select{margin-top:8px}.booking-panel .btn{margin-top:16px;width:100%;font-size:16px}.booking-panel .btn:disabled{color:#a9aebb;border-color:#454a56;background:#2a2e38;transform:none}.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.calendar-head h3{text-transform:capitalize;font-size:20px;font-weight:500;margin:0}.calendar-head button{width:44px;height:44px;background:#222632;border:1px solid #555b69;color:#fff;border-radius:6px}.calendar-head button:disabled{opacity:.4}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{color:#b0b6c3;text-align:center;font-size:12px;margin:18px 0 8px}.calendar-grid button{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:38px;background:#20242e;border:1px solid #616979;border-radius:7px;color:#f4f5f8;font-size:16px}.calendar-grid button.available:hover,.time-slots button.available:hover{border-color:var(--red);background:#49252d}.calendar-grid button.closed,.calendar-grid button:disabled{background:#17191f;border-color:#292d36;color:#646b79;cursor:default}.calendar-grid button.held{color:#d5b479;border-color:#69512f;background:#342918}.calendar-grid button.selected,.time-slots button.selected{background:#ef4b56;border-color:#ef4b56;color:#160609}.calendar-grid button[aria-current=date]{text-decoration:underline;text-underline-offset:5px}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:#afb5c2;line-height:1.6;margin:12px 0 20px}.calendar-legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:#68748d;margin-right:6px}.calendar-legend .legend-held:before{background:#aa8042}.calendar-legend .legend-paid:before{background:#454b58}.time-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.time-slots button{min-height:44px;border:1px solid #677085;background:#262c39;color:#fff;border-radius:6px;font-size:14px}.time-slots button:disabled{background:#1c2028;border-color:#363c48;color:#777e8b;text-decoration:line-through}.time-slots button.held{border-color:#79603b;color:#d7b57f}.booking-summary{position:sticky;top:108px}.booking-summary h2{font-size:25px;line-height:1.1;margin:12px 0 22px;letter-spacing:-.025em}.booking-summary>p{font-size:14px}.booking-summary .smallprint{font-size:12px}.booking-summary a{display:block;font-size:14px;margin-top:10px;min-height:32px}.booking-summary hr{border:0;border-top:1px solid #363a45;margin-top:22px}.summary-price{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #3d424e;margin-top:22px;padding-top:20px}.summary-price>span{font-size:14px}.summary-price strong{font-size:28px;letter-spacing:-.03em}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}.booking-panel .check-label{display:flex;flex-direction:row;align-items:start;flex-wrap:wrap;gap:8px;margin:20px 0;font-size:14px;line-height:1.6}.check-label input{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--red)}.check-label a{text-decoration:underline}.booking-panel .back-link{background:none;border:0;padding:0;color:#bfc7d5;margin:0 0 16px}.review-details{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;font-size:14px;line-height:1.6}.review-details dt{color:#adb5c4}.review-details dd{margin:0;overflow-wrap:anywhere}#pickup-fields{margin-bottom:20px}#preview-controls{padding:12px 0}#preview-controls .btn{font-size:14px}
@media(max-width:850px){.booking-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.booking-panel,.booking-summary{padding:18px}.booking-page{padding-inline:20px}}
@media(max-width:650px){.booking-page{padding:18px 12px 32px}.booking-heading{margin:8px 4px 22px}.booking-heading h1{font-size:40px}.booking-heading p{font-size:16px}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;order:-1;padding:16px}.booking-summary h2{font-size:22px;margin:4px 0 8px}.booking-summary>p{margin:5px 0}.booking-summary .smallprint,.booking-summary hr,.booking-summary>a,.booking-summary>p:nth-last-of-type(1){display:none}.summary-price{padding-top:10px;margin-top:10px}.booking-steps{gap:8px;margin:18px 0}.booking-steps li{font-size:12px;line-height:1.4}.booking-steps span{display:block;margin-bottom:5px}.booking-panel{padding:18px 14px}.form-grid{grid-template-columns:1fr}.weekdays,.calendar-grid{gap:5px}.calendar-grid button{font-size:14px}.booking-notice{padding:12px;font-size:14px}.review-details{grid-template-columns:1fr;gap:3px}.review-details dd{margin-bottom:9px}.time-slots{grid-template-columns:repeat(3,1fr)}}

.availability-help{margin-top:18px;padding:14px 16px;border:1px solid #625343;border-radius:8px;background:#241f1b;font-size:14px}.availability-help p{margin:0 0 8px}.availability-help a{display:inline-flex;align-items:center;min-height:44px;color:#ffc2c6;text-decoration:underline}
.payment-choice{border:1px solid #595e6b;border-radius:8px;padding:14px;margin:22px 0}.payment-choice legend{font-size:16px;padding:0 6px}.payment-choice label{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;min-height:52px;gap:10px}.payment-choice input[type=radio]{width:20px;height:20px;min-height:20px;accent-color:var(--red)}.payment-choice strong{margin-left:auto;font-size:16px}.payment-totals p{display:flex;justify-content:space-between;gap:8px;font-size:14px}.payment-totals strong{white-space:nowrap}.time-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.time-slots button{padding:12px;min-height:52px}.calendar-grid button.closed{opacity:.65}.calendar-grid button.closed:not(:disabled){cursor:pointer}.calendar-grid button.closed.selected{outline:2px solid #b8a28a;outline-offset:2px}

/* Both paid and temporarily held periods are unavailable to other visitors. */
.calendar-grid button.held,.time-slots button.held:disabled{background:#1c2028;border-color:#363c48;color:#9299a5;text-decoration:line-through}
.calendar-legend{font-size:14px}

.booking-steps{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:500px){.booking-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
