/* Booking enhancements use the existing site's brand tokens and spacing. */
.booking-sr-only{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.booking-builder .builder-form{gap:28px}
.booking-builder .group-label,.booking-review-heading{display:flex;align-items:center;gap:12px;font:600 15px/1.45 var(--body);letter-spacing:0}
.booking-step{display:inline-grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border:1px solid var(--line);font:10px/1 var(--mono);color:var(--ocean)}
.booking-builder .field-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.booking-identity-row{margin-block-start:20px}
.booking-builder .field{gap:7px}
.booking-builder .field label{color:var(--ink);font-size:13px;font-weight:500}
.booking-builder .field input,.booking-builder .field textarea{min-width:0;max-width:100%;width:100%;min-height:48px;padding:11px 12px;border:1px solid var(--line);border-radius:0;background:var(--bone);color:var(--ink);font-size:16px;line-height:1.4}
.booking-builder .field textarea{min-height:98px;resize:vertical}
.booking-builder input[type=number]{font-variant-numeric:tabular-nums}
.booking-builder input[type=date],.booking-builder input[type=time]{direction:ltr;text-align:start;min-inline-size:0}
.booking-builder input::-webkit-date-and-time-value{text-align:start}
.booking-builder .field-hint,.booking-group-hint{font:12px/1.6 var(--body);color:var(--ink-soft)}
.booking-group-hint{margin-block-start:9px}
.booking-before-options{margin-block:0 14px}
.booking-builder .session-toggle label{gap:10px;padding:14px;min-height:82px}
.booking-builder .session-toggle label>span{font-weight:600}
.booking-builder .session-toggle label small{display:block;margin-block-start:3px;font-size:11px;font-weight:400;color:var(--ink-soft);white-space:normal}
.booking-builder .session-cost{font:400 22px/1.2 var(--display);letter-spacing:-.04em;white-space:nowrap}
.booking-handover-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-handover-choice{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:15px 13px;border:1px solid var(--line);cursor:pointer}
.booking-handover-choice input,.booking-addon-choice input{flex:none;margin-block-start:4px;min-width:17px;min-height:17px;accent-color:var(--ocean)}
.booking-handover-choice:has(input:checked),.booking-addon-choice:has(input:checked){border-color:var(--ocean);background:#edf3ef}
.booking-handover-choice:has(input:focus-visible),.booking-addon-choice:has(input:focus-visible){outline:3px solid var(--ocean);outline-offset:3px}
.booking-handover-choice strong,.booking-addon-choice strong{display:block;font-size:13px;font-weight:600;line-height:1.5}
.booking-handover-choice small,.booking-addon-choice small{display:block;margin-block-start:4px;font-size:11px;color:var(--ink-soft);line-height:1.6}
.booking-delivery-panel{margin-block-start:18px}
.booking-builder .option-cards{gap:10px}
.booking-builder .booking-addon-choice{align-items:start;gap:9px;padding:13px 11px;border:1px solid var(--line);min-width:0;min-height:88px}
.booking-addon-panel{padding:18px;margin-block-start:16px;border:1px solid var(--line);background:var(--paper)}
.booking-dorm-panel>.field{max-width:280px;margin-block-end:16px}
.booking-equipment-panels{display:flex;gap:14px;flex-wrap:wrap}
.booking-equipment-panels>.booking-addon-panel{flex:1 1 210px}
.booking-stay-length{margin-block-start:8px;font:500 12px/1.6 var(--mono);color:var(--ocean)}
.booking-stay-length:empty{display:none}
.booking-builder .field-error{display:block;color:#a12f1e;font-size:12px;font-weight:500;line-height:1.6;margin-block-start:3px}
.booking-builder [aria-invalid=true]{border-color:#a12f1e!important;box-shadow:0 0 0 1px #a12f1e}
.booking-builder .booking-review{grid-template-columns:minmax(0,1fr);gap:14px;padding-block:27px}
.booking-review-heading{margin-block-end:4px;font-size:16px}
.booking-review .request-price{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:18px;background:var(--paper);border:1px solid var(--line)}
.booking-review .request-price>span{font-size:13px;font-weight:600;color:var(--ink)}
.booking-review .request-price>strong{font-size:30px;margin:0;text-align:end;direction:ltr}
.booking-review .request-price>[data-price-formula]{grid-column:1/-1;font-size:12px;color:var(--ink-soft);overflow-wrap:anywhere}
.booking-selection{font-size:12px;color:var(--ink-soft);overflow-wrap:anywhere}
.booking-selection dl{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(0,1.35fr);gap:7px 18px;margin:0}
.booking-selection dt{font-weight:500;color:var(--ink)}
.booking-selection dd{margin:0;white-space:pre-wrap;unicode-bidi:plaintext}
.booking-inclusions{font-size:11px;line-height:1.7;color:var(--ocean)}
.booking-unpriced{font-size:12px;font-weight:500;padding:12px 14px;background:#f4ead1;color:var(--ink);border-inline-start:3px solid #c59a34}
.booking-review .button{width:100%;font-size:14px}
.booking-send-hint{font-size:11px;color:var(--ink-soft);margin-block-start:-4px}
.booking-policy-links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px}
.booking-policy-links a,.booking-direct-link{text-decoration:underline;text-underline-offset:4px}
.booking-direct-link{display:inline-flex;align-items:center;justify-self:start;min-height:44px;font-size:12px;font-weight:500}
.booking-errors{padding:16px;border:1px solid #a12f1e;background:#fff4ee;color:#842414;font-size:13px}
.booking-errors p{font-weight:600}
.booking-errors ul{display:grid;gap:5px;list-style:disc;padding-inline-start:20px;margin-block-start:7px}
.booking-errors a{text-decoration:underline;text-underline-offset:3px}
.booking-nojs{font-size:13px;color:var(--ink-soft)}
[dir=rtl] .booking-builder input[type=date],[dir=rtl] .booking-builder input[type=time]{text-align:end}
[dir=rtl] .booking-selection dd{unicode-bidi:plaintext}
@media(max-width:600px){
  .booking-builder .field-row{grid-template-columns:minmax(0,1fr);gap:17px}
  .booking-builder .session-toggle label{grid-template-columns:17px minmax(0,1fr);gap:6px 9px;padding:13px 11px}
  .booking-builder .session-cost{grid-column:2;font-size:24px}
  .booking-builder .session-toggle label small{font-size:10px}
  .booking-handover-options{grid-template-columns:minmax(0,1fr);gap:9px}
  .booking-handover-choice{padding:12px}
  .booking-builder .option-cards{grid-template-columns:minmax(0,1fr);gap:9px}
  .booking-builder .booking-addon-choice{min-height:64px;padding:12px}
  .booking-addon-panel{padding:15px}
  .booking-review .request-price{padding:15px}
  .booking-review .request-price>strong{font-size:26px}
  .booking-selection dl{grid-template-columns:minmax(0,1fr);gap:3px}
  .booking-selection dd{margin-block-end:8px}
}
@media(prefers-reduced-motion:reduce){.booking-builder *{scroll-behavior:auto!important}}
