/* Public search shell; travel controls share the existing native calendar/guest enhancement. */
.rt-search-shell { width:min(1120px,100%); color:var(--c-ink); text-align:left; }
.rt-search-widget { padding:16px; background:var(--c-surface); color:var(--c-ink); border-radius:8px; border:1px solid var(--c-line); box-shadow:var(--sh-2); }
.rt-search-widget label { font-size:13px; font-weight:600; }
.rt-search-modes { border:0; display:flex; gap:4px; padding:0; margin:0 0 12px; }
.rt-search-modes label { position:relative; cursor:pointer; }
.rt-search-modes input { position:absolute; width:1px; height:1px; opacity:0; }
.rt-search-modes span { display:block; min-height:44px; padding:10px 16px; border-radius:4px; border:1px solid transparent; }
.rt-search-modes input:checked + span { color:var(--c-card-chip-text); background:var(--c-card-chip-bg); border-color:var(--c-line-strong); }
.rt-search-modes input:focus-visible + span { outline:var(--focus-ring); outline-offset:2px; }
.rt-search-bar { display:grid; grid-template-columns:minmax(180px,1.1fr) minmax(340px,2fr) auto; align-items:end; gap:12px; }
.rt-search-where { min-width:0; }
.rt-search-where label { display:block; margin-bottom:4px; }
.rt-target-control { display:flex; align-items:center; min-width:0; }
.rt-target-control input { width:100%; min-width:0; min-height:44px; padding:8px 0; border:0; background:transparent; color:var(--c-ink); font:inherit; font-size:15px; text-overflow:ellipsis; }
.rt-target-control input::placeholder { color:var(--c-muted); opacity:1; }
.no-search-ui .rt-target-control input, html:not(.js) .rt-target-control input { border:1px solid var(--c-line-field); border-radius:4px; background:var(--c-surface); padding-inline:10px; }
.rt-target-clear { flex:none; width:44px; height:44px; border:0; background:transparent; }
.rt-target-list { position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(440px,calc(100vw - 32px)); max-height:min(360px,calc(100dvh - 32px)); margin:0; padding:8px; overflow:auto; overscroll-behavior:contain; border:1px solid var(--c-line); border-radius:8px; color:var(--c-ink); background:var(--c-surface); box-shadow:var(--sh-3); }
.rt-target-list::backdrop { background:transparent; }
.rt-target-heading { padding:12px 12px 4px; font-size:12px; font-weight:600; color:var(--c-muted); }
.rt-target-option { display:flex; flex-direction:column; justify-content:center; gap:2px; min-height:48px; padding:10px 12px; border-radius:4px; cursor:pointer; overflow-wrap:anywhere; }
.rt-target-option b { font-size:15px; font-weight:600; }
.rt-target-option small { font-size:12px; color:var(--c-muted); }
.rt-target-option:hover,.rt-target-option[aria-selected=true] { background:var(--c-navy-tint); }
.rt-target-option[aria-selected=true] { outline:2px solid var(--c-ink); outline-offset:-2px; }
@supports (position-area:bottom span-right) and (position-try-fallbacks:flip-block,flip-inline) and (position-try-order:most-height) {
  .rt-target-list:not(.is-position-fallback) { inset:auto; transform:none; position-area:bottom span-right; position-try-fallbacks:flip-block,flip-inline,flip-block flip-inline,--rt-travel-wide,--rt-travel-wide flip-block; position-try-order:most-height; justify-self:start; align-self:start; margin-block:8px; margin-inline:16px; max-height:min(360px,calc(100% - 24px)); }
}
.rt-search-widget :is(select,input[type=search],input[type=number]) { min-height:44px; width:100%; min-width:0; font:inherit; color:var(--c-ink); background:var(--c-surface); border:1px solid var(--c-line-field); border-radius:4px; padding:8px 10px; }
.rt-search-scope { display:block; min-height:44px; padding:8px 0; overflow-wrap:anywhere; }
.rt-search-widget .rt-booking__fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0; border:1px solid var(--c-line); border-radius:4px; }
.rt-search-widget .rt-booking__fields > button { min-width:0; border:0; border-radius:0; border-right:1px solid var(--c-line); min-height:62px; padding:8px 12px; color:var(--c-ink); background:var(--c-surface); cursor:pointer; text-align:left; }
.rt-search-widget .rt-booking__fields > button:last-child { border-right:0; }
.rt-search-widget .rt-booking__fields > .is-full { grid-column:auto; }
.rt-search-widget .rt-booking__fields--compact { grid-template-columns:minmax(220px,1.4fr) minmax(120px,1fr); }
.rt-search-widget .rt-booking__fields .rt-travel-range { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.rt-travel-range > [data-arrival-summary],.rt-travel-range > [data-departure-summary] { white-space:nowrap; }
.rt-search-widget .rt-booking__fields small { display:block; font-size:12px; color:var(--c-muted); margin-bottom:2px; text-transform:none; }
.rt-search-widget .rt-booking__fields b { display:block; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.rt-search-widget .rt-search-bar > .rt-btn { min-height:62px; }
.rt-search-widget .rt-travel-popover { grid-column:1/-1; }
.rt-search-options { margin-top:12px; }
.rt-search-options summary { font-size:13px; color:var(--c-muted); cursor:pointer; }
.rt-search-options label { display:grid; gap:6px; margin-top:10px; }
/* Decide the enhanced layout before first paint; the boot error handler restores fallback fields. */
.has-native-popover:not(.no-target-picker):not(.no-search-ui) .rt-search-widget:has(select[name=rt_target]) .rt-search-options { display:none; }
.rt-search-remember { align-items:center; justify-content:center; gap:8px; margin:0 auto; padding:8px 14px; min-height:44px; width:fit-content; max-width:100%; border-radius:0 0 16px 16px; background:var(--c-surface); color:var(--c-ink); font-weight:400 !important; cursor:pointer; }
.rt-search-remember input { accent-color:var(--c-navy); width:18px; height:18px; }
.js .rt-search-remember { display:flex !important; }
.rt-search-message:empty { display:none; }
.rt-search-message { font-size:14px; margin-top:12px; }
.rt-search-themes { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; }
.rt-search-themes a { display:inline-flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--c-line-strong); border-radius:var(--r-pill); background:var(--c-surface); color:var(--c-ink); font-size:13px; font-weight:600; text-decoration:none; }
.rt-search-themes a:hover { background:var(--c-navy-tint); }
.js .rt-search-mobile { display:none !important; }
.rt-search-no-js { display:none; }
.rt-search-dialog { width:min(620px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:16px; border:0; border-radius:8px; background:var(--c-surface); color:var(--c-ink); }
.rt-search-dialog > form[method=dialog] { display:flex; justify-content:flex-end; margin-bottom:12px; }
.rt-search-dialog .rt-search-widget { padding:0; border:0; box-shadow:none; }
.rt-search-dialog .rt-search-bar { grid-template-columns:minmax(0,1fr); }
.rt-search-dialog .rt-search-bar > .rt-btn { min-height:48px; }
.rt-search-profile { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; padding:12px 16px; border-block:1px solid var(--c-line); background:var(--c-surface); color:var(--c-ink); font-size:14px; text-align:left; }
.rt-search-profile p { margin:0; flex:1 1 220px; }
[data-search-output] { scroll-margin-top:100px; }
.rt-landing-search { padding-top:24px; }
.no-search-ui .rt-search-remember { display:none !important; }
.rt-search-pagination { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-block:24px; }
.rt-search-widget:not(.is-enhanced) .rt-travel-popover { padding:16px 0; }
.rt-result-controls { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:start; gap:16px; margin-block:24px; padding-block:18px; border-block:1px solid var(--c-line); }
.rt-result-filters { min-width:0; }
.rt-result-filters > summary { display:flex; align-items:center; gap:8px; min-height:44px; width:fit-content; cursor:pointer; font-weight:600; list-style:none; }
.rt-result-filters > summary::-webkit-details-marker { display:none; }
.rt-result-filters[open] > summary > .dashicons:last-child { transform:rotate(180deg); }
.rt-result-filter-count { min-width:24px; padding:2px 6px; border-radius:var(--r-pill); background:var(--c-navy); color:var(--c-on-navy); text-align:center; font-size:13px; }
.rt-result-facets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding-block:16px 4px; }
.rt-result-facets fieldset { min-width:0; margin:0; padding:0; border:0; }
.rt-result-facets legend { font-size:14px; font-weight:700; margin-bottom:8px; }
.rt-result-check { display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; cursor:pointer; }
.rt-result-check input { width:18px; height:18px; flex:none; accent-color:var(--c-navy); }
.rt-result-check span { overflow-wrap:anywhere; }
.rt-result-check small { margin-inline-start:auto; color:var(--c-muted); padding-inline:8px; }
.rt-result-check:has(input:disabled) { color:var(--c-muted); cursor:not-allowed; }
.rt-result-sort { display:flex; align-items:center; flex-wrap:wrap; gap:8px; max-width:100%; font-size:14px; font-weight:600; }
.rt-result-sort select { min-height:44px; min-width:0; max-width:100%; padding:8px 12px; border:1px solid var(--c-line-field); border-radius:4px; background:var(--c-surface); color:var(--c-ink); font:inherit; }
.rt-result-actions { display:flex; flex-wrap:wrap; gap:8px; }
.rt-result-controls > .rt-search-message { grid-column:1/-1; margin:0; }
@media (min-width:1024px) {
  .has-native-popover .rt-search-desktop .rt-search-widget { border:0; padding:0; border-radius:0; box-shadow:none; background:transparent; }
  .has-native-popover .rt-search-desktop .rt-search-modes { display:flex; width:fit-content; padding:4px 8px 0; margin:0 0 0 32px; border-radius:16px 16px 0 0; background:var(--c-surface); color:var(--c-ink); }
  .has-native-popover .rt-search-desktop .rt-search-modes span { min-height:40px; padding:8px 18px; border-radius:12px 12px 0 0; }
  .has-native-popover .rt-search-desktop .rt-search-modes input:checked + span { background:var(--c-navy-tint); color:var(--c-ink); border-color:transparent; }
  .has-native-popover .rt-search-desktop .rt-search-bar { gap:0; align-items:stretch; padding:8px; border:0; border-radius:var(--r-pill); background:var(--c-surface); box-shadow:var(--sh-2); }
  .has-native-popover .rt-search-desktop .rt-search-where { display:flex; flex-direction:column; justify-content:center; padding:0 20px; border-radius:var(--r-pill); }
  .has-native-popover .rt-search-desktop .rt-search-where label { font-size:12px; line-height:16px; color:var(--c-muted); margin:0; }
  .has-native-popover .rt-search-desktop .rt-search-where select { min-height:44px; padding:2px 20px 2px 0; border:0; background-color:transparent; font-size:15px; }
  .has-native-popover .rt-search-desktop .rt-search-scope { min-height:32px; padding:2px 0; font-size:15px; }
  .has-native-popover .rt-search-desktop .rt-booking__fields { border:0; border-radius:0; }
  .has-native-popover .rt-search-desktop .rt-booking__fields > button { position:relative; border:0; border-radius:var(--r-pill); padding:8px 18px; background:transparent; }
  .has-native-popover .rt-search-desktop .rt-booking__fields > button::before { content:none; }
  .has-native-popover .rt-search-desktop .rt-booking__fields > button[aria-expanded=true] { background:var(--c-navy-tint); }
  .has-native-popover .rt-search-desktop .rt-booking__fields > button[aria-expanded=true]::before { opacity:0; }
  .has-native-popover .rt-search-desktop .rt-search-bar > .rt-btn { border-radius:var(--r-pill); padding-inline:24px; margin-inline-start:8px; min-inline-size:var(--search-submit-min-width,215px); }
  .has-native-popover .rt-search-desktop :is(.rt-search-where:focus-within,.rt-booking__fields > button:hover) { background:var(--c-navy-tint); }
  .has-native-popover .rt-home-hero--image .rt-search-desktop :is(.rt-search-options summary,.rt-search-message) { color:var(--c-on-navy); text-shadow:0 1px 3px rgb(0 0 0 / .6); }
  .has-native-popover .rt-search-desktop .rt-search-options label { padding:12px; background:var(--c-surface); color:var(--c-ink); border-radius:8px; }
}
.has-native-popover .rt-search-widget:not(.is-enhanced) .rt-travel-popover { display:none; }
.rt-travel:not(.is-enhanced) [data-travel-summary] { display:none; }
.has-native-popover:not(.no-search-ui) .rt-search-widget:not(.is-enhanced) [data-travel-summary] { display:grid; }
@supports (appearance:base-select) {
  .rt-search-where select, .rt-search-where select::picker(select) { appearance:base-select; }
  .rt-search-where select::picker(select) { max-height:min(380px,60dvh); max-width:calc(100vw - 32px); border:1px solid var(--c-line); border-radius:8px; padding:8px; background:var(--c-surface); color:var(--c-ink); box-shadow:var(--sh-3); }
  .rt-search-where option { padding:10px; }
}
@media (max-width:1023px) { .rt-search-bar { grid-template-columns:minmax(0,1fr) auto; } .rt-search-where { grid-column:1/-1; } }
@media (max-width:1023px) {
  .rt-search-desktop { display:none; }
  .js .rt-search-mobile { display:flex !important; align-items:center; width:100%; min-height:48px; justify-content:flex-start; gap:10px; padding:6px 6px 6px 16px; border:0; border-radius:var(--r-pill); background:var(--c-surface); color:var(--c-ink); box-shadow:var(--sh-1); text-align:left; }
  .rt-search-mobile__summary { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600; }
  .rt-search-mobile.has-selection .rt-search-mobile__summary { display:flex; flex-wrap:wrap; gap:2px 6px; overflow:visible; white-space:normal; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
  .rt-search-mobile.has-selection [data-mobile-where] { flex-basis:100%; font-size:14px; }
  .rt-search-mobile.has-selection [data-mobile-where] + span { display:none; }
  .rt-search-mobile__go { display:grid; place-items:center; flex:none; width:36px; height:36px; border-radius:50%; background:var(--c-book); color:var(--c-on-book); }
  .rt-search-mobile > .dashicons { flex-shrink:0; }
  html:not(.js) .rt-search-no-js { display:block; }
  .no-native-dialog .rt-search-desktop { display:block; }
  .no-native-dialog .rt-search-mobile { display:none !important; }
  .no-native-dialog .rt-search-no-js { display:none; }
  .no-search-ui .rt-search-desktop { display:block; }
  .no-search-ui .rt-search-mobile { display:none !important; }
  .rt-search-widget { padding:12px; }
  .rt-search-bar { grid-template-columns:minmax(0,1fr); }
  .rt-search-widget .rt-booking__fields > button { padding:8px; }
  .rt-result-controls { grid-template-columns:minmax(0,1fr); gap:12px; }
  .rt-result-sort { justify-content:space-between; }
  .rt-result-facets { gap:16px; }
}
@media (max-width:420px) { .rt-result-facets { grid-template-columns:minmax(0,1fr); } }
@media (max-width:420px) { .rt-search-widget .rt-booking__fields--compact { grid-template-columns:minmax(0,1fr); } .rt-search-widget .rt-booking__fields--compact > button { border-right:0; } }

/* The sheet owns scrolling; the original controls and form remain intact. */
.rt-search-dialog--sheet { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:100dvh; margin:0; padding:0; border-radius:0; overflow:hidden; }
.rt-search-dialog--sheet[open] { display:flex; flex-direction:column; }
.rt-search-dialog--sheet > form[method=dialog] { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; flex:none; align-items:center; gap:8px; margin:0; padding:20px; padding-top:max(20px,env(safe-area-inset-top)); }
.rt-search-dialog--sheet > form[method=dialog] > div { grid-column:2; min-width:0; text-align:center; }
.rt-search-dialog--sheet > form[method=dialog] > button { grid-column:3; border-color:transparent; background:transparent; }
.rt-search-dialog--sheet h2 { font-size:24px; line-height:1.3; margin:0; }
.rt-search-sheet-progress { font-size:12px; color:var(--c-muted); margin-top:4px; }
.rt-search-sheet-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); flex:none; border-block:1px solid var(--c-line); }
.rt-search-sheet-nav button { min-width:0; min-height:76px; padding:12px; text-align:left; cursor:pointer; background:var(--c-surface); color:var(--c-ink); border:0; border-bottom:3px solid transparent; }
.rt-search-sheet-nav button[aria-current=step] { background:var(--c-navy-tint); border-bottom-color:var(--c-navy); }
.rt-search-sheet-nav span { display:block; font-size:12px; font-weight:600; }
.rt-search-sheet-nav b { display:block; font-size:12px; font-weight:400; margin-top:6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rt-search-dialog--sheet [data-search-dialog-content] { display:flex; flex-direction:column; flex:1; min-height:0; }
.rt-search-dialog--sheet .rt-search-widget { display:flex; flex-direction:column; flex:1; min-height:0; }
.rt-search-sheet-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px 20px; }
.rt-search-dialog--sheet .rt-search-where { border:1px solid var(--c-line-field); border-radius:8px; padding:12px; }
.rt-search-dialog--sheet .rt-search-where > label { font-size:12px; color:var(--c-muted); }
.rt-search-dialog--sheet .rt-search-options input { font-size:16px; }
.rt-search-dialog--sheet .rt-target-control input { font-size:16px; }
.rt-search-dialog--sheet .rt-travel.is-enhanced .rt-travel-popover { position:static; inset:auto; transform:none; position-area:none; position-anchor:auto; margin:0; padding:0; width:100%; max-width:none; max-height:none; overflow:visible; border:0; border-radius:0; box-shadow:none; }
.rt-search-dialog--sheet .rt-travel-popover__head { display:none; }
.rt-search-dialog--sheet [data-travel-apply] { display:none; }
.rt-search-dialog--sheet .rt-travel-popover__foot { justify-content:flex-start; }
.rt-search-sheet-foot { display:flex; align-items:center; justify-content:space-between; flex:none; gap:12px; padding:16px 20px; padding-bottom:max(16px,env(safe-area-inset-bottom)); border-top:1px solid var(--c-line); background:var(--c-surface); }
.rt-search-sheet-foot > :is([data-search-next],[type=submit]) { margin-inline-start:auto; min-height:48px; }
.rt-search-dialog--sheet .rt-search-message:not(:empty) { flex:none; padding:12px 20px; margin:0; max-height:25dvh; overflow:auto; }
@media (max-width:359px) {
  .rt-search-dialog--sheet > form[method=dialog],.rt-search-sheet-body,.rt-search-sheet-foot { padding-inline:16px; }
  .rt-search-sheet-nav button { padding-inline:8px; }
}
