.booking-sort-control{display:inline-flex;align-items:center;gap:.75rem;align-self:flex-start;padding:.55rem .65rem .55rem .85rem;border:1px solid color-mix(in srgb,var(--color-border) 68%,transparent);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-surface) 90%,transparent);box-shadow:var(--shadow-card);backdrop-filter:blur(12px)}
.booking-sort-control label{font-size:.78rem;font-weight:700;color:var(--color-muted);white-space:nowrap}
.booking-sort-select-wrap{position:relative;display:block}
.booking-sort-select-wrap::after{content:"";position:absolute;right:.85rem;top:50%;width:.5rem;height:.5rem;border-bottom:2px solid var(--color-muted);border-right:2px solid var(--color-muted);pointer-events:none;transform:translateY(-65%) rotate(45deg)}
.booking-sort-select{appearance:none;-webkit-appearance:none;min-width:12rem;min-height:2.75rem;border:0;border-radius:var(--radius-button);background:var(--color-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-border) 58%,var(--color-surface));color:var(--color-text);font-size:.9rem;font-weight:700;line-height:1.2;padding:.68rem 2.25rem .68rem .9rem;outline:0}
.booking-sort-select:focus{box-shadow:inset 0 0 0 1px var(--color-primary),var(--softstay-focus-ring,0 0 0 4px color-mix(in srgb,var(--color-primary) 18%,transparent));outline:0}
[data-lightbox-image]{cursor:zoom-in}
.booking-lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:1.25rem;background:rgba(15,23,42,.84)}
.booking-lightbox.is-open{display:flex}
.booking-lightbox__image{max-width:min(92vw,1180px);max-height:82vh;border-radius:min(var(--radius-card,20px),18px);box-shadow:0 28px 80px rgba(0,0,0,.45);object-fit:contain}
.booking-lightbox__button{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:9999px;background:color-mix(in srgb,var(--color-surface) 90%,transparent);color:var(--color-text);box-shadow:0 12px 30px rgba(0,0,0,.24)}
.booking-lightbox__button:hover,.booking-lightbox__button:focus-visible{background:var(--color-primary);color:#FFFFFF;outline:0}
.booking-lightbox__close{top:1rem;right:1rem}
.booking-lightbox__prev{left:1rem}
.booking-lightbox__next{right:1rem}
.booking-lightbox__meta{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);padding:.45rem .8rem;border-radius:9999px;background:color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text);font-size:.8rem;font-weight:700}
@media (max-width:640px){.booking-sort-control{box-sizing:border-box;width:100%;max-width:100%;align-items:stretch;flex-direction:column;gap:.5rem;border-radius:var(--mobile-radius-card,var(--radius-card));padding:.75rem}.booking-sort-select-wrap,.booking-sort-select{width:100%;min-width:0}.booking-sort-select{font-size:1rem;min-height:var(--mobile-control-height,3.25rem)}.booking-lightbox{padding:.75rem}.booking-lightbox__image{max-width:calc(100vw - 1.5rem);max-height:78vh}.booking-lightbox__button{width:3rem;height:3rem}.booking-lightbox__close{top:max(.75rem,env(safe-area-inset-top,0px));right:.75rem}.booking-lightbox__prev{left:.75rem}.booking-lightbox__next{right:.75rem}.booking-lightbox__meta{bottom:calc(.75rem + var(--mobile-bottom-safe-area,env(safe-area-inset-bottom,0px)));max-width:calc(100vw - 1.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

@media (hover:none),(pointer:coarse){.booking-sort-control{backdrop-filter:none;box-shadow:0 8px 22px rgba(15,23,42,.08)}.booking-lightbox__button:hover{background:color-mix(in srgb,var(--color-surface) 90%,transparent);color:var(--color-text)}}

.booking-results-summary__facts{display:flex;flex-wrap:wrap;gap:.4rem .5rem;margin-top:.5rem;color:var(--color-muted);font-size:.82rem}
.booking-results-summary__facts span{display:inline-flex;align-items:center;gap:.2rem;border:1px solid color-mix(in srgb,var(--color-border) 78%,transparent);border-radius:999px;background:color-mix(in srgb,var(--color-surface) 88%,transparent);padding:.3rem .55rem;white-space:nowrap}
.booking-results-summary__facts strong{color:var(--color-text)}
.booking-results-edit-search{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.75rem;flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-primary);font-size:.78rem;font-weight:800;padding:.5rem .75rem}
.booking-results-edit-search:focus-visible{box-shadow:var(--softstay-focus-ring);outline:0}
.booking-results-mobile-utility,.booking-selected-rooms-bar,.booking-selected-rooms-backdrop,.booking-selected-rooms-panel__mobile-head{display:none}
.booking-results-list{scroll-margin-top:8rem}
.booking-selected-room-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}
.booking-selected-room-action{border:0;background:transparent;font-size:.75rem;font-weight:800;padding:.25rem}
.booking-selected-room-action--change{color:var(--color-primary)}
.booking-selected-room-action--remove{color:var(--color-danger)}

@media (max-width:1023px){
  .booking-results-page{box-sizing:border-box;max-width:100%;padding-bottom:calc(5.75rem + var(--mobile-bottom-safe-area));width:100%}
  #booking-results-search-form{z-index:2}
  .booking-results-summary{margin-bottom:.75rem}
  .booking-results-summary h2{font-size:1.35rem;line-height:1.25}
  .booking-results-summary__facts{flex-wrap:nowrap;max-width:100%;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .booking-results-summary__facts::-webkit-scrollbar{display:none}
  .booking-sort-control--desktop{display:none}
  .booking-results-mobile-utility{position:sticky;top:0;z-index:35;display:flex;align-items:center;gap:.5rem;box-sizing:border-box;width:100%;margin:0 0 1rem;padding:.4rem;border:1px solid color-mix(in srgb,var(--color-border) 76%,transparent);border-radius:var(--radius-button);background:color-mix(in srgb,var(--color-surface) 96%,transparent);box-shadow:0 8px 22px rgba(15,23,42,.08)}
  .booking-results-mobile-sort{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.35rem;flex:1 1 auto;min-width:0}
  .booking-results-mobile-sort label{display:inline-flex;align-items:center;gap:.3rem;color:var(--color-muted);font-size:.75rem;font-weight:800;padding-left:.35rem;white-space:nowrap}
  .booking-results-mobile-sort select{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;min-width:0;min-height:2.75rem;border:0;border-radius:10px;background:color-mix(in srgb,var(--color-background) 72%,var(--color-surface));color:var(--color-text);font-size:.8125rem;font-weight:800;padding:.55rem .5rem}
  .booking-results-mobile-review{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto;min-height:2.75rem;border:1px solid color-mix(in srgb,var(--color-primary) 22%,var(--color-border));border-radius:10px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));color:var(--color-primary);font-size:.78rem;font-weight:800;padding:.5rem .65rem}
  .booking-results-mobile-review strong{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;border-radius:999px;background:var(--color-primary);color:#fff;font-size:.7rem}
  .booking-results-mobile-sort select:focus-visible,.booking-results-mobile-review:focus-visible{box-shadow:var(--softstay-focus-ring);outline:0}

  .booking-room-card__media{aspect-ratio:16/10;height:auto!important;min-height:0}
  .booking-room-card__media img,.booking-room-card__media .room-image-slider{height:100%;width:100%}
  .booking-room-card__content,.booking-room-card__commerce{padding:var(--mobile-card-padding)}
  .booking-room-card__content h3{font-size:1.35rem}
  .booking-room-card__occupancy{margin-top:.5rem}
  .booking-room-card__commerce{gap:.75rem}
  .booking-room-card__price span{font-size:1.65rem}
  .booking-room-card__actions{display:flex;flex-direction:column}
  .booking-room-card__select-form{order:1}
  .booking-room-card__details-form{order:2}
  .booking-room-card__actions button{min-height:3rem}
  .room-slider-arrow{width:3rem!important;height:3rem!important}

  .booking-selected-rooms-panel{position:fixed!important;inset:auto 0 0 0;z-index:70;display:flex;flex-direction:column;box-sizing:border-box;width:100%;max-width:100%;max-height:80vh;max-height:80dvh;margin:0;padding:0!important;border-radius:var(--mobile-radius-card) var(--mobile-radius-card) 0 0;box-shadow:0 -20px 55px rgba(15,23,42,.2);opacity:0;overflow:hidden;pointer-events:none;transform:translateY(100%);transition:transform .22s ease,opacity .18s ease;visibility:hidden}
  .booking-selected-rooms-panel.is-open{opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible}
  .booking-selected-rooms-panel__mobile-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:0 0 auto;border-bottom:1px solid var(--color-border);padding:.75rem var(--mobile-page-gutter)}
  .booking-selected-rooms-panel__close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:3rem;min-height:3rem;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-text)}
  .booking-selected-rooms-panel__content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--mobile-card-padding);-webkit-overflow-scrolling:touch}
  .booking-selected-rooms-panel__footer{position:sticky;bottom:0;z-index:1;flex:0 0 auto;border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 96%,transparent);padding:.75rem var(--mobile-page-gutter) calc(.75rem + var(--mobile-bottom-safe-area))}
  .booking-selected-room-actions{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;flex:0 0 auto}
  .booking-selected-room-action{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;border-radius:9px;font-size:.75rem;font-weight:800;padding:.45rem .6rem}
  .booking-selected-room-action--change{background:color-mix(in srgb,var(--color-primary) 8%,#fff);color:var(--color-primary)}
  .booking-selected-room-action--remove{background:#fef2f2;color:#dc2626}
  .booking-selected-rooms-backdrop{position:fixed;inset:0;z-index:69;display:block;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .18s ease;visibility:hidden}
  .booking-selected-rooms-backdrop.is-open{opacity:1;pointer-events:auto;visibility:visible}
  body.booking-selected-rooms-open{overflow:hidden;overscroll-behavior:none}

  .booking-selected-rooms-bar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-sizing:border-box;min-height:var(--mobile-sticky-height);border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 96%,transparent);box-shadow:0 -10px 28px rgba(15,23,42,.12);padding:.55rem var(--mobile-page-gutter) calc(.55rem + var(--mobile-bottom-safe-area))}
  .booking-selected-rooms-bar__summary{min-width:0;color:var(--color-text);font-size:.85rem;font-weight:800;line-height:1.25}
  .booking-selected-rooms-bar__total{max-width:11rem;overflow:hidden;color:var(--color-muted);font-size:.75rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
  .booking-selected-rooms-bar__action{flex:0 0 auto;min-width:6.5rem;min-height:3rem}
}

@media (max-width:360px){
  .booking-results-edit-search span{display:none}
  .booking-results-edit-search{min-width:2.75rem;padding:.5rem}
  .booking-results-mobile-sort label span{display:none}
  .booking-results-mobile-review{padding-inline:.5rem}
}

@media (min-width:1024px){
  .booking-selected-rooms-panel{visibility:visible!important}
  .booking-selected-rooms-panel__content{display:contents}
  .booking-selected-rooms-panel__footer{margin-top:1rem}
}

@media (hover:none),(pointer:coarse){
  .booking-room-card:hover{transform:none}
  .booking-results-mobile-utility,.booking-selected-rooms-bar{backdrop-filter:none}
}

/* Guest allocation modal: desktop dialog with a mobile step sheet. */
.allocation-modal__sheet{display:flex;flex-direction:column;overflow:hidden}
.allocation-modal__header{flex:0 0 auto}
.allocation-modal__close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:2.75rem;min-height:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-muted)}
.allocation-modal__close:hover{color:var(--color-text)}
.allocation-modal__close:focus-visible{box-shadow:var(--softstay-focus-ring);outline:0}
.allocation-modal__remaining{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;color:var(--color-muted);font-size:.78rem}
.allocation-modal__remaining>span{font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.allocation-modal__remaining strong{border-radius:999px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));color:var(--color-primary);padding:.3rem .55rem}
.allocation-modal__form{min-height:0;overflow-y:auto;padding:1.25rem}
.allocation-modal__steps{display:flex;flex-direction:column;gap:1rem}
.allocation-room-step__eyebrow{color:var(--color-primary);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.allocation-room-step__heading h4{font-size:1rem;line-height:1.35}
.allocation-room-step__error,.allocation-modal__global-error{border:1px solid #fecaca;border-radius:12px;background:#fef2f2;color:#b91c1c;font-size:.82rem;font-weight:700;line-height:1.4;padding:.7rem .8rem}
.allocation-room-step__error{margin-top:.75rem}
.allocation-modal__global-error{margin-bottom:1rem}
.allocation-room-step__counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.85rem}
.allocation-count-control>label{display:block;color:var(--color-muted);font-size:.78rem;font-weight:800;margin-bottom:.35rem}
.allocation-stepper{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.25rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:.2rem}
.allocation-stepper button{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;border:0;border-radius:9px;background:color-mix(in srgb,var(--color-background) 72%,var(--color-surface));color:var(--color-text)}
.allocation-stepper button:hover{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-primary)}
.allocation-stepper button:focus-visible{box-shadow:var(--softstay-focus-ring);outline:0}
.allocation-stepper .theme-input{min-width:0;min-height:2.75rem;border:0;background:transparent;box-shadow:none;font-size:1rem;font-weight:800;padding:.35rem;text-align:center}
.allocation-room-step__allocated{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.75rem;color:var(--color-muted);font-size:.75rem}
.allocation-room-step__allocated>span{font-weight:800;text-transform:uppercase}
.allocation-room-step__allocated strong{color:var(--color-text)}
.allocation-child-ages{margin-top:1rem}
.allocation-child-ages legend{color:var(--color-text);font-size:.8rem;font-weight:800;margin-bottom:.5rem}
.allocation-child-ages__chips{display:flex;flex-wrap:wrap;gap:.5rem}
.allocation-child-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);cursor:pointer;font-size:.78rem;font-weight:800;padding:.55rem .8rem;touch-action:manipulation}
.allocation-child-chip input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.allocation-child-chip:has(input:checked){border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}
.allocation-child-chip:has(input:focus-visible){box-shadow:var(--softstay-focus-ring)}
.allocation-desktop-actions{display:flex;gap:.5rem;margin-top:1rem}
.allocation-mobile-actions{display:none}
body.booking-allocation-open{overflow:hidden;overscroll-behavior:none}

@media (max-width:639px){
  .allocation-modal{align-items:flex-end;padding:0;background:rgba(15,23,42,.56);backdrop-filter:none}
  .allocation-modal__sheet{width:100%;max-width:none;max-height:94vh;max-height:94dvh;border:0;border-radius:var(--mobile-radius-card) var(--mobile-radius-card) 0 0;box-shadow:0 -20px 55px rgba(15,23,42,.2)}
  .allocation-modal__header{padding:.85rem var(--mobile-page-gutter) .75rem}
  .allocation-modal__header h3{font-size:1.3rem;line-height:1.25}
  .allocation-modal__progress{color:var(--color-primary)}
  .allocation-modal__remaining{margin-top:.45rem}
  .allocation-modal__close{min-width:3rem;min-height:3rem}
  .allocation-modal__form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;padding:0}
  .allocation-modal__global-error{flex:0 0 auto;margin:.75rem var(--mobile-page-gutter) 0}
  .allocation-modal__steps{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.75rem var(--mobile-page-gutter);-webkit-overflow-scrolling:touch}
  .allocation-room-step{display:none;border:0;border-radius:0;background:transparent;padding:0}
  .allocation-room-step.is-active{display:block}
  .allocation-room-step__heading h4{font-size:1.12rem}
  .allocation-room-step__rate{margin-top:.15rem}
  .allocation-room-step__price{font-size:.8rem}
  .allocation-room-step__counts{gap:.65rem;margin-top:1rem}
  .allocation-stepper{grid-template-columns:3rem minmax(0,1fr) 3rem;padding:.25rem}
  .allocation-stepper button{min-width:3rem;min-height:3rem}
  .allocation-stepper .theme-input{min-height:3rem;font-size:1.1rem;padding:.25rem;-moz-appearance:textfield}
  .allocation-stepper .theme-input::-webkit-outer-spin-button,.allocation-stepper .theme-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
  .allocation-child-chip{min-height:3rem;padding:.65rem .85rem;font-size:.82rem}
  .allocation-desktop-actions{display:none}
  .allocation-mobile-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:.5rem;flex:0 0 auto;border-top:1px solid var(--color-border);background:var(--color-surface);padding:.75rem var(--mobile-page-gutter) calc(.75rem + var(--mobile-bottom-safe-area))}
  .allocation-mobile-actions .theme-button-primary,.allocation-mobile-actions .theme-button-outline{min-height:3rem;padding-inline:.65rem}
  .allocation-mobile-actions [data-allocation-next].hidden,.allocation-mobile-actions [data-allocation-save].hidden{display:none}
  .allocation-mobile-actions [data-allocation-save]{grid-column:1/-1}
  .allocation-mobile-actions [data-allocation-back]:disabled{opacity:.45;cursor:not-allowed}
}

@media (max-width:340px){
  .allocation-room-step__counts{grid-template-columns:1fr}
  .allocation-mobile-actions{grid-template-columns:1fr 1.3fr}
  .allocation-mobile-actions button{font-size:.78rem}
}

@media (hover:none),(pointer:coarse){
  .allocation-modal__sheet{box-shadow:0 -14px 36px rgba(15,23,42,.16)}
}

@media (max-width:768px){
  body.powerota-is-embedded .booking-selected-rooms-bar{position:sticky;left:auto;right:auto;bottom:0;width:100%;max-width:100%}
  body.powerota-is-embedded .booking-selected-rooms-panel{width:100%;max-width:100%;max-height:min(80vh,42rem);max-height:min(80dvh,42rem)}
  body.powerota-is-embedded .allocation-modal__sheet{width:100%;max-width:100%;max-height:90vh;max-height:90dvh}
}
