/* V18: navigation/search presentation only. No booking, offer-card or
   comparison selectors; native field geometry and popup stacking are kept. */

/* Let actual form content determine its height, not a full-screen reservation. */
body.home-page:not(.results-mode) .hero,
body.home-page:not(.results-mode) .hero .search-card,
body.home-page:not(.results-mode) .tbe-mount,
body.home-page:not(.results-mode) tbe,
body.home-page:not(.results-mode) .hero .tbe-searchbox,
body.destination-page:not(.destination-results-mode) .destination-tbe,
body.destination-page:not(.destination-results-mode) .destination-tbe tbe{
  min-height:0;
}
body.home-page.results-mode:not(.tbe-booking-mode) .hero,
body.home-page.results-mode:not(.tbe-booking-mode) .tbe-mount,
body.home-page.results-mode:not(.tbe-booking-mode) tbe,
body.destination-page.destination-results-mode:not(.tbe-booking-mode) .destination-tbe,
body.destination-page.destination-results-mode:not(.tbe-booking-mode) .destination-tbe tbe{
  min-height:0;
}
body.home-page:not(.results-mode) .hero .tbe-searchbox,
body.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox{
  padding-block:10px 6px;
}
body.home-page:not(.results-mode) .hero .tbe-searchbox__submit,
body.destination-page:not(.destination-results-mode) .destination-tbe .tbe-searchbox__submit{
  min-height:0;
}

/* Only the results-side search shell gets the compact rhythm. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper searchbox{
  padding:8px;
  border:1px solid #dce5ed;
  border-radius:12px;
  box-shadow:0 3px 12px rgba(23,50,74,.04);
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper searchbox>form{
  gap:12px;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper .tbe-switch__tabs{
  gap:6px;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper .tbe-switch__tab{
  height:48px;
}

/* Round sorting panels in both hotel and offer views; native popups stay unclipped. */
tbe :is(.tbe-hotelpage,.tbe-offerpage) .tbe-content-wrapper > .tbe-result-modifier{
  border-radius:16px !important;
}

/* Preserve native column widths, sorting, collapse behaviour and links. */
tbe .tbe-regionpage .tbe-regions__row--head{
  margin-bottom:8px;
  border:1px solid #dce5ed;
  border-radius:9px;
  background:#edf3f7;
  color:#516579;
}
tbe .tbe-regionpage .tbe-regions__row--head .tbe-regions__col{
  color:inherit;
  font-size:14px;
  font-weight:600;
}
tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row,
tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row{
  margin-top:8px;
  padding-inline:12px;
  border-color:#dce5ed;
  border-radius:9px;
}
tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row{
  background:#f1f5f8;
}
tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row:hover{
  background:#f6f9fc;
}
tbe .tbe-breadcrumb a[data-ro-new-search="true"]{
  color:var(--blue);
}
tbe .tbe-breadcrumb a[data-ro-new-search="true"]:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:-2px;
}

@media(max-width:680px){
  /* Native mobile collapse must override the legacy forced-flex form rule. */
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper searchbox>form:is([style*="display: none"],[style*="display:none"]){
    display:none !important;
  }
  /* Keep every native step, in a single scrollable row instead of hiding it. */
  tbe .tbe-breadcrumb:has(a[data-ro-new-search="true"]){
    display:flex;
    align-items:center;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
  }
  tbe .tbe-breadcrumb:has(a[data-ro-new-search="true"]) .tbe-breadcrumb__link{
    flex:0 0 auto;
    float:none;
    width:auto;
    padding:12px 16px 12px 10px;
    font-size:12px;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper searchbox{
    padding:6px;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode):not(.tbe-booking-mode) .tbe-search-wrapper searchbox>form{
    gap:10px;
  }
  tbe .tbe-regionpage .tbe-regions__list>.tbe-regions__row,
  tbe .tbe-regionpage .tbe-regions__items .tbe-regions__row{
    margin-top:6px;
    padding-inline:8px;
  }
}

/* Homepage startup only; reserve the existing final form, not a viewport.
   Extra options remain free to expand after the initial form is ready. */
@font-face{
  font-family:"Satisfy";
  font-style:normal;
  font-weight:400;
  font-display:block;
  src:url("/assets/fonts/satisfy-latin.ttf") format("truetype");
}
body.home-page:not(.results-mode){
  --home-search-height:calc(52px + 4px + 3 * 74px + 16px + 45px);
  --claim-y-offset:14.5px;
}
body.home-page:not(.results-mode) .hero .tbe-mount{
  position:relative;
}
body.home-page.home-search-loading:not(.results-mode) .hero .tbe-mount{
  height:var(--home-search-height);
  min-height:var(--home-search-height);
  overflow:hidden;
}
body.home-page.home-search-loading:not(.results-mode) .hero tbe > .tbe-container{
  visibility:hidden;
  pointer-events:none;
}
body.home-page.home-search-loading:not(.results-mode) .site-tbe-loading{
  display:none;
}
body.home-page.home-search-loading:not(.results-mode) .hero .tbe-mount::after{
  content:"";
  position:absolute;
  top:calc(50% - 12px);
  left:calc(50% - 12px);
  width:24px;
  height:24px;
  box-sizing:border-box;
  border:3px solid #e3ebf1;
  border-top-color:var(--blue);
  border-radius:50%;
  animation:spin .8s linear infinite;
}
@media(min-width:1000px) and (max-height:920px){
  body.home-page:not(.results-mode){--claim-y-offset:11.5px}
}
@media(min-width:681px) and (max-width:980px){
  body.home-page:not(.results-mode){
    --claim-y-offset:17.5px;
  }
}
@media(min-width:768px) and (max-width:991px){
  body.home-page:not(.results-mode){--home-search-height:410px}
}
@media(min-width:681px) and (max-width:767px){
  body.home-page:not(.results-mode){--home-search-height:632px}
}
@media(max-width:680px){
  body.home-page:not(.results-mode){
    --home-search-height:calc(50px + 6 * 73px + 50px + 17px + 16px + 45px);
    --claim-y-offset:11.5px;
  }
}
