.booking-page .booking-dorm{border:1px solid var(--line);background:var(--surface-soft,#f3f8fb);border-radius:8px;min-width:0;margin:22px 0;padding:18px}.booking-page .booking-dorm legend{color:var(--ink);padding:0 6px;font-size:15px;font-weight:700}.booking-page .booking-dorm-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.booking-page .booking-dorm-options label{border:1px solid var(--line);background:var(--surface,#fff);color:var(--ink);cursor:pointer;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;font-size:12px;display:flex}.booking-page .booking-dorm-options label:has(input[type=radio]){flex-wrap:nowrap}.booking-page .booking-dorm-options label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.booking-page .booking-dorm-options input[type=radio]{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0;margin:0}.booking-page .booking-dorm-options input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.booking-page .booking-dorm .button:disabled{opacity:.45;cursor:not-allowed}.booking-page :is(.booking-dorm,.booking-dorm-options,#booking-calendar,#summary-dorm)[hidden]{display:none}@media (width<=600px){.booking-page .booking-dorm-options{grid-template-columns:1fr}.booking-page .booking-dorm-options label{justify-content:space-between}.booking-page .booking-dorm-options label:has(input[type=radio]){justify-content:flex-start}.booking-page .booking-dorm-options input[type=number]{width:76px}}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge{color:#6d4a05;background:#fff7dc;border-color:#cb951e;min-width:0;min-height:66px}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge.selected{color:#fff;background:#155766;border-color:#155766}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge:disabled{color:#8a8373;background:#f0ede4}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day .calendar-holiday-badge{white-space:pre-line;overflow-wrap:anywhere;min-width:0;max-width:100%;margin-top:3px;font-size:clamp(8px,1.7vw,10px);font-weight:700;line-height:1.3;text-decoration:none;display:block}:is(.cart-checkout-page,.booking-page) .calendar .calendar-legend .holiday-legend i{background:#e8b842}.holiday-calendar-note{color:var(--muted);margin:12px 0 18px;font-size:12px;line-height:1.65}.holiday-totals{margin:16px 0 0}.holiday-totals>div{justify-content:space-between;align-items:start;gap:16px;padding-block:10px;font-size:12px;line-height:1.5;display:flex}.holiday-totals dd{white-space:nowrap;margin:0;font-weight:700}.holiday-quote-status{color:var(--muted);margin:12px 0;font-size:12px;line-height:1.6}.holiday-quote-retry{color:inherit;background:0 0;border:1px solid;border-radius:5px;min-height:44px;padding:10px 14px;font-size:12px}.cart-summary .holiday-quote-status{color:#c4e2eb}.cart-summary .holiday-quote-retry{color:#ecfaff}.checkout-dates-overview [data-summary-holiday]{color:#ffe2a3;margin-top:6px;font-size:10px;line-height:1.6;display:block}html[data-theme=dark] :is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge{color:#ffe2a3;background:#453a22;border-color:#ac842e}html[data-theme=dark] :is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge.selected{color:#fff;background:#176676;border-color:#68bac7}html[data-theme=dark] :is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.has-holiday-surcharge:disabled{color:#a29a87;background:#302f29}.calendar .calendar-grid .calendar-loading{grid-column:1/-1;justify-items:center;gap:14px;min-width:0;line-height:1.6;display:grid}.calendar .calendar-grid .calendar-loading p{margin:0}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-loading .calendar-retry{aspect-ratio:auto;border-color:var(--line);background:var(--surface-soft);width:auto;max-width:100%;min-height:44px;color:var(--ink);border-radius:7px;padding:10px 18px;font-size:13px;line-height:1.5;display:inline-flex}:is(.cart-checkout-page,.booking-page) .calendar .calendar-grid .calendar-day.availability-unknown{text-decoration:none}.booking-page{background:#eef6fb}.booking-intro{padding-top:40px;padding-bottom:10px}.booking-intro .eyebrow{margin-bottom:13px}.booking-intro .display-heading{font-size:49px}.booking-layout{grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:45px;padding-bottom:90px;display:grid}.booking-main{background:#fff;border:1px solid #dce7ee;border-radius:6px;align-self:start;padding:32px}.booking-steps{border-bottom:1px solid var(--line);margin:0 0 38px;padding:0;list-style:none;display:flex}.booking-steps li{color:#7c8f9c;flex:1;align-items:center;gap:10px;padding-bottom:20px;font-size:10px;display:flex;position:relative}.booking-steps li>span{border:1px solid var(--line);border-radius:50%;place-items:center;width:26px;height:26px;font-size:9px;display:grid}.booking-steps li.active{color:var(--ink)}.booking-steps li.active>span{background:var(--ink);border-color:var(--ink);color:#fff}.booking-steps li.active:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:20px}.booking-main h2{font-family:var(--display);letter-spacing:-.05em;margin-bottom:25px;font-size:25px;line-height:1.3}.booking-main .eyebrow{color:var(--muted);margin-bottom:11px;font-size:8px}.booking-main input:not([type=checkbox]):not([type=radio]),.booking-main select{height:48px;color:var(--ink);background:#fff;border:1px solid #cfdee9;border-radius:3px;width:100%;padding:0 14px;font-size:12px}.booking-main select:disabled{color:#7a8e9e;background:#f0f6fa}.guest-control{align-items:center;display:flex}.guest-control button{border:1px solid var(--line);background:#f0f6fa;width:43px;height:43px;font-size:21px}.guest-control input{text-align:center;appearance:textfield;max-width:55px;border-inline:0!important;border-radius:0!important;height:43px!important;padding:0!important}.guest-control input::-webkit-inner-spin-button{appearance:none}.guest-control>span{color:var(--muted);margin-left:13px;font-size:11px}.next-step{margin-top:15px}.booking-summary{background:#fff;border:1px solid #dce7ee;border-radius:6px;align-self:start;position:sticky;top:25px;overflow:hidden}.booking-summary>img{object-fit:cover;width:100%;height:200px}.summary-inner{padding:25px}.summary-inner>.eyebrow{margin-bottom:11px;font-size:8px}.summary-inner h2{font-family:var(--display);letter-spacing:-.04em;margin-bottom:22px;font-size:22px;line-height:1.35}.summary-inner dl{margin:0}.summary-inner dl>div{border-bottom:1px solid #e4eef5;justify-content:space-between;gap:20px;padding-block:11px;font-size:11px;display:flex}.summary-inner dt{color:var(--muted);flex-shrink:0}.summary-inner dd{text-align:right;margin:0}.summary-total{justify-content:space-between;align-items:center;gap:20px;margin-top:20px;font-size:12px;display:flex}.summary-total strong{letter-spacing:-.045em;font-size:25px;font-weight:500}.summary-inner .field-help{font-size:9px}.summary-help{border-top:1px solid var(--line);align-items:center;gap:15px;margin-top:22px;padding-top:20px;display:flex}.summary-help>span{font-size:34px}.summary-help strong{margin-bottom:5px;font-size:11px;font-weight:500;display:block}.summary-help a{color:var(--muted);font-size:10px}.calendar{border:1px solid var(--line);border-radius:5px;margin-top:24px;padding:19px}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.calendar-nav strong{font-size:14px;font-weight:500}.calendar-nav button{border:1px solid var(--line);background:0 0;border-radius:50%;width:32px;height:32px;font-size:15px}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekdays span{text-align:center;color:var(--muted);padding-bottom:13px;font-size:10px}.calendar-grid button{aspect-ratio:1.13;background:#edf8fe;border:1px solid #cce6f3;border-radius:4px;padding:3px;font-size:12px;position:relative}.calendar-grid button:disabled{color:#889aa7;background:#f1f4f7;border-color:#e8eef3;text-decoration:line-through}.calendar-grid button.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.calendar-grid button small{margin-top:3px;font-size:6px;line-height:1.1;text-decoration:none;display:block}.calendar-loading{text-align:center;grid-column:1/-1;padding:50px 10px;font-size:12px}.calendar-legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:15px;margin-top:18px;padding-top:17px;font-size:8px;display:flex}.calendar-legend>span{align-items:center;gap:5px;display:flex}.calendar-legend i{background:#82d6f1;border-radius:50%;width:7px;height:7px;display:block}.calendar-legend span:nth-child(2) i{background:#ccd7de}.calendar-legend span:nth-child(3) i{background:var(--ink)}.step-actions{justify-content:space-between;align-items:center;gap:20px;margin-top:30px;display:flex}.step-actions .text-link{border-bottom:0;padding:0;font-size:11px}.arrival-summary{margin-block:20px 0;font-size:12px;line-height:1.7}.payment-options{border:0;margin-top:28px;padding:0}.payment-options legend{margin-bottom:12px;font-size:11px}.payment-options label{border:1px solid var(--line);cursor:pointer;border-radius:4px;align-items:center;gap:11px;margin-bottom:10px;padding:16px;display:flex}.payment-options input,.terms-check input{accent-color:var(--ink)}.payment-options strong{font-size:13px;font-weight:600}.payment-options label>span{color:var(--muted);margin-left:auto;font-size:10px}.terms-check{align-items:start;gap:9px;margin-top:20px;font-size:11px;line-height:1.8;display:flex}.terms-check input{margin-top:4px}.terms-check a{text-decoration:underline}.booking-message{background:#f4f1dc;border:1px solid #e1d8b1;border-radius:4px;margin-bottom:24px;padding:15px;font-size:12px;line-height:1.7}.booking-message.error{color:#81482f;background:#f9ece4;border-color:#e9c7b6}@media (width<=1100px){.booking-layout{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:25px}.booking-main{padding:25px}.booking-steps li{gap:7px;font-size:9px}}@media (width<=850px){.booking-layout{grid-template-columns:1fr}.booking-summary{grid-template-columns:.6fr 1fr;display:grid;position:static}.booking-summary>img{height:100%;min-height:300px}.booking-main{padding:32px}.booking-steps li{font-size:11px}}@media (width<=600px){.booking-intro{padding-top:30px}.booking-intro .display-heading{font-size:38px}.booking-layout{gap:22px;width:calc(100% - 28px);padding-bottom:55px}.booking-main{padding:23px 17px}.booking-steps{gap:5px;margin-bottom:29px}.booking-steps li{flex-direction:column;align-items:flex-start;gap:5px;padding-bottom:15px;font-size:8px}.booking-steps li.active:after{right:10px}.booking-main h2{font-size:23px}.booking-main .button{gap:15px;padding:15px 16px;font-size:10px}.calendar{padding:13px}.calendar-grid,.calendar-weekdays{gap:4px}.calendar-grid button{aspect-ratio:.93;font-size:11px}.calendar-grid button small{font-size:5px}.calendar-nav strong{font-size:12px}.calendar-legend{gap:10px;font-size:7px}.payment-options label>span{font-size:8px}.terms-check{font-size:10px}.booking-summary{display:block}.booking-summary>img{height:180px;min-height:0}.summary-inner{padding:22px}}
