.occupancy-control{min-width:0;position:relative}.occupancy-label{margin-bottom:8px;font-size:12px;font-weight:500;display:block}.occupancy-trigger{width:100%;min-height:50px;color:var(--navy);font:13px/1.4 var(--sans);text-align:left;background:#fffdf9;border:1px solid #cfc5b6;border-radius:3px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.occupancy-panel{overscroll-behavior:contain;z-index:20;width:370px;max-height:65vh;color:var(--navy);border:1px solid var(--line);background:#fffdf9;border-radius:6px;padding:24px;position:absolute;top:calc(100% + 10px);right:0;overflow-y:auto;box-shadow:0 14px 40px #101d2d25}.occupancy-panel[hidden]{display:none!important}.occupancy-counter{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:14px;display:flex}.occupancy-counter small{color:var(--muted);font-size:11px;display:block}.occupancy-stepper{border:1px solid #cfc5b6;border-radius:3px;flex-shrink:0;align-items:center;display:flex}.occupancy-stepper button{width:42px;min-height:44px;color:var(--navy);background:0 0;border:0;font-size:22px}.occupancy-stepper button:hover:not(:disabled){background:var(--ivory)}.occupancy-stepper button:disabled{color:#b6b1a8;cursor:not-allowed}.occupancy-stepper output{text-align:center;min-width:28px;font-size:14px}.occupancy-help{color:var(--muted);margin:12px 0;font-size:11px;line-height:1.6}.occupancy-done{width:100%;margin-top:15px}.room-allocation,.child-ages{gap:12px;display:grid}.room-allocation:not(:empty),.child-ages:not(:empty){border-top:1px solid var(--line);margin-top:15px;padding-top:15px}.room-allocation>strong{font-size:13px}.child-age-row{grid-template-columns:1fr;gap:10px;display:grid}.occupancy-panel .stay-search-error{font-size:12px}.hero.hero-booking{overflow:visible}.hero-booking .booking-hero-preview,.hero-booking:has(.occupancy-panel:not([hidden])){z-index:5}.stay-search:has(.occupancy-panel:not([hidden])){z-index:10;position:relative}@media (width<=700px){.occupancy-panel{width:min(370px,100%);max-height:55vh;padding:18px}.occupancy-trigger{font-size:14px}}.direct-booking{--booking-paper:#fffaf2;padding-top:165px;padding-bottom:90px}.direct-booking [hidden]{display:none!important}.booking-intro{max-width:760px}.booking-intro h1{font:clamp(42px, 5vw, 68px)/1.08 var(--serif);margin:14px 0}.booking-intro>p,.stage-caption{color:var(--muted)}.preview-notice{border:1px solid #c9ae7b;border-left:3px solid var(--gold);color:#574221;background:#f9f1df;border-radius:4px;margin:24px 0;padding:16px 20px;font-size:13px;line-height:1.65}.preview-notice strong{margin-bottom:3px;display:block}.booking-steps{color:var(--muted);grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0;padding:0;font-size:12px;list-style:none;display:grid}.booking-steps li{border-bottom:2px solid var(--line);padding:0 0 12px}.booking-steps [aria-current]{color:var(--navy);border-color:var(--gold);font-weight:600}.stay-search{border:1px solid var(--line);color:var(--navy);background:#fffaf2;border-radius:5px;padding:24px}.stay-search-label{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:11px;display:flex}.stay-search form{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:16px;display:grid}.stay-search label,.guest-fields label{gap:8px;min-width:0;font-size:12px;font-weight:500;display:grid}.stay-search input,.stay-search select,.guest-fields input,.guest-fields textarea{box-sizing:border-box;font:14px/1.4 var(--sans);width:100%;min-width:0;min-height:50px;color:var(--navy);background:#fffdf9;border:1px solid #cfc5b6;border-radius:3px;padding:12px;transition:border-color .25s,box-shadow .25s,background-color .25s}.stay-search :is(input,select):hover,.guest-fields :is(input,textarea):hover{border-color:var(--gold)}.stay-search :is(input,select):focus-visible,.guest-fields :is(input,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 4px #b88a3b12}.stay-search .button-fill,.direct-booking .button-fill{border:1px solid var(--navy);background:var(--navy);min-height:50px;color:var(--ivory);letter-spacing:.1em;white-space:normal;text-align:center;border-radius:3px;justify-content:center;align-items:center;gap:18px;padding:14px 22px;font-size:10px;line-height:1.5;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex}.stay-search .button-fill:before,.direct-booking .button-fill:before{display:none}.stay-search .button-fill:hover,.direct-booking .button-fill:not(:disabled):hover{background:var(--navy-soft);border-color:var(--gold)}.stay-search-note{color:var(--muted);margin-top:14px;font-size:11px;line-height:1.6}.stay-search-note a{text-underline-offset:3px;text-decoration:underline}.stay-search-error{color:#9c332b;grid-column:1/-1;font-size:13px}.stay-search-error:empty{display:none}.booking-status{color:var(--muted);margin:22px 0;font-size:13px}.booking-workspace{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.direct-booking h2{font:34px/1.15 var(--serif);margin-bottom:12px}.stage-caption{margin-bottom:24px;font-size:13px}.preview-room-list{gap:22px;display:grid}.preview-room{background:var(--booking-paper);border:1px solid var(--line);border-radius:5px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);transition:border-color .25s,box-shadow .25s;display:grid;overflow:hidden}.preview-room:hover{border-color:#b88a3b80;box-shadow:0 8px 24px #101d2d08}.preview-room>img{object-fit:cover;width:100%;height:100%;min-height:275px}.preview-room-body{flex-direction:column;justify-content:center;min-width:0;padding:24px;display:flex}.live-room-group{gap:16px;margin-bottom:30px;display:grid}.live-room-group .preview-room{grid-template-columns:1fr}.live-room-group>h3{font:24px/1.3 var(--serif);margin:12px 0}.live-room-group button[aria-pressed=true]{background:var(--navy);color:#fff}.preview-room-body .eyebrow{letter-spacing:.12em;font-size:9px}.preview-room h3{font:27px/1.15 var(--serif);margin:12px 0}.preview-room-body>p{color:var(--muted);font-size:12px}.preview-room-price{gap:16px;margin-top:22px;display:grid}.preview-room-price>span{color:var(--muted);font-size:11px}.preview-room-price strong{font:26px/1.2 var(--serif);color:var(--navy);display:block}.booking-summary{background:var(--navy);color:var(--ivory);border-radius:5px;padding:26px;position:sticky;top:116px}.booking-summary h2{margin-top:12px;font-size:29px}.booking-summary h3{font:24px/1.2 var(--serif)}.booking-summary>p{font-size:12px;line-height:1.7}.booking-summary hr{border:0;border-top:1px solid #ffffff30;margin:22px 0}.booking-summary dl{margin:24px 0}.booking-summary dt{font-size:11px}.booking-summary dd{font:32px var(--serif);margin:6px 0 0}.summary-disclaimer{color:#d1c4b1}.summary-lock{color:var(--gold-light);border-top:1px solid #ffffff30;margin-top:22px;padding-top:16px}.booking-panel{background:var(--booking-paper);border:1px solid var(--line);border-radius:5px;padding:30px}.booking-back{min-height:44px;color:var(--muted);background:0 0;border:0;align-items:center;margin-bottom:15px;padding:0;font-size:13px;transition:color .25s;display:inline-flex}.booking-back:hover{color:var(--gold)}.guest-fields{grid-template-columns:1fr 1fr;gap:22px;margin:26px 0;display:grid}.guest-fields .wide{grid-column:1/-1}.guest-fields textarea{resize:vertical}.booking-panel>p{overflow-wrap:anywhere;margin-bottom:20px;font-size:13px}.booking-panel>.button-fill{margin-top:16px}.direct-booking .booking-panel button:disabled{color:#71695e;cursor:not-allowed;opacity:1;background:#e7e1d7;border-color:#d6ccbd;transform:none}.booking-policy{border-top:1px solid var(--line);margin-top:25px;padding:22px 0 0}.booking-policy h3{font:25px var(--serif);margin-bottom:12px}.booking-policy p{margin-bottom:12px;font-size:13px;line-height:1.75}.stay-search-hero{z-index:2;max-width:1200px;margin:0 auto;position:relative;box-shadow:0 12px 40px #00000014}.hero.hero-booking{flex-direction:column;justify-content:flex-end;gap:32px;height:auto;min-height:100svh;max-height:none;padding:175px 6% 30px;display:flex}.hero-booking .hero-content{width:100%;margin:auto 0 0;position:relative;bottom:auto;left:auto}.hero-booking .booking-hero-preview{z-index:2;background:0 0;padding:0;position:relative}.hero-booking .hero-bottom{position:relative;bottom:auto;left:auto;right:auto}.hero-booking .stay-search .eyebrow{color:var(--gold)}.direct-booking button:focus-visible,.stay-search button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.direct-booking [data-stage]:not([hidden]){animation:.25s ease-out booking-appear}@keyframes booking-appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (width<=1100px){.booking-workspace{grid-template-columns:minmax(0,1fr) 265px;gap:22px}.preview-room{grid-template-columns:1fr}.preview-room>img{height:230px;min-height:0}.preview-room-price{grid-template-columns:1fr auto;align-items:center}.stay-search form{grid-template-columns:1fr 1fr}.booking-summary{padding:22px}}@media (width<=700px){.direct-booking{padding-top:135px;padding-bottom:55px}.booking-intro h1{font-size:42px}.booking-workspace{grid-template-columns:1fr}.booking-summary{position:static}.booking-panel{padding:22px}.booking-steps{grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;font-size:11px}.stay-search{padding:18px}.stay-search form,.guest-fields{grid-template-columns:1fr}.preview-room>img{height:215px}.preview-room-body{padding:22px}.preview-room-price{grid-template-columns:1fr}.preview-room-price .button-fill,.booking-panel>.button-fill{width:100%}.preview-notice{padding:14px 16px;font-size:12px}.hero.hero-booking{gap:26px;padding-top:150px}}@media (prefers-reduced-motion:reduce){.stay-search *,.direct-booking *,.preview-room{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
