/* Native package/hotel/flight results and the city/wellness search pages.
   The cruise page is the reference and does not load this stylesheet.
   Provider controls, result data, navigation and booking behaviour stay native. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode){
  --ro-results-inset:20px;
  --ro-results-gap:20px;
}
body.home-page.results-mode .hero-layout,
body.destination-page.destination-results-mode .destination-search-shell > .container,
body:is(.city-search-page,.fit-search-page) .ro-search-container,
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) .header-inner,
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) .destination-hero-content{
  width:min(var(--container),calc(100% - 48px));
  margin-inline:auto;
}
body:is(.city-search-page,.fit-search-page) .ro-search-container{margin-top:20px}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe > .tbe-container{
  width:100%;
  max-width:none;
}

/* One inset, shared by the heading, the filter card and the result list. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-header{
  width:100%;
  padding:16px var(--ro-results-inset);
  margin:0;
  font-size:32px;
  line-height:1.2;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-header h2{
  padding:0;
  margin:0;
  font-size:inherit;
  line-height:inherit;
  font-weight:400;
  letter-spacing:normal;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) > :is(.tbe-search-wrapper,.tbe-content-wrapper){
  box-sizing:border-box;
  min-width:0;
  width:100%;
  padding-inline:var(--ro-results-inset);
}
@media(min-width:992px){
  /* Match cruise: 32% of the inner canvas for filters, then a 20px gap.
     Retain the native float layout and its existing sticky behaviour. */
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) > .tbe-search-wrapper{
    float:left;
    width:calc(max(290px,(100% - 2 * var(--ro-results-inset)) * .32) + var(--ro-results-inset) + var(--ro-results-gap) / 2);
    padding-right:calc(var(--ro-results-gap) / 2);
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) > .tbe-content-wrapper{
    float:left;
    width:calc(100% - max(290px,(100% - 2 * var(--ro-results-inset)) * .32) - var(--ro-results-inset) - var(--ro-results-gap) / 2);
    padding-left:calc(var(--ro-results-gap) / 2);
  }
}

/* Existing native steps and the notepad share one full-height navigation row. */
@media(min-width:681px){
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) :is(.tbe-breadcrumb,.tbe-notepad__link){
    min-height:54px;
    margin-top:0;
    background:#f7f9fb;
    border-bottom:1px solid #e2eaf0;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-breadcrumb__link{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:53px;
    padding-block:8px;
    line-height:1.4;
    font-size:14px;
    background:transparent;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-breadcrumb__link::after{top:50%;transform:translateY(-50%)}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-notepad__link{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:8px;
    font-size:14px;
    line-height:1.4;
    background:#e4eef7;
  }
}

/* Same filter-card treatment and control density as the cruise reference. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-search-wrapper searchbox{
  border:1px solid #dce5ed;
  border-radius:12px;
  padding:8px;
  background:#fff;
  box-shadow:0 3px 12px #17324a0a;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) :is(#tbeMount,#city-tbe,#fit-tbe) .tbe-search-wrapper .tbe-switch__tab{
  min-height:48px;
  height:48px;
  border-radius:10px;
  font-size:14px;
  line-height:1.2;
  box-shadow:none;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__row--head{
  min-height:48px;
  border:1px solid #dce5ed;
  border-radius:16px;
  background:#e4eef7;
  color:var(--navy);
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__row--head .tbe-regions__col{
  color:inherit;
  font-size:14px;
  font-weight:600;
}
@media(min-width:681px){
  /* Fixed space for time, weather and price prevents clipped figures when
     the result column narrows. Destination names retain native ellipsis. */
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__row:has(> .tbe-regions__col--region){
    display:grid;
    grid-template-columns:minmax(0,1fr) 110px 180px 125px;
    align-items:center;
    padding-inline:12px;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__row--hotelonly:has(> .tbe-regions__col--region){grid-template-columns:minmax(0,1fr) 180px 125px}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__row:has(> .tbe-regions__col--region) > .tbe-regions__col{
    width:auto;
    min-width:0;
    float:none;
    padding-inline:6px;
  }
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-regions__items .tbe-regions__col--region{
    white-space:normal;
    line-height:1.4;
    padding-block:12px;
    overflow-wrap:anywhere;
  }
}
/* Offer titles and actions use the cruise cards' type scale and button size. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-hotelpage,.tbe-offerpage) .tbe-hotel__name{
  color:var(--blue);
  font-size:20px;
  line-height:1.3;
  font-weight:700;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-hotel-info__price,.tbe-offer__check,.tbe-offer__navigate) .tbe-primary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:0 3px;
  min-height:46px;
  padding:10px 14px;
  border-radius:9px;
  background:var(--blue);
  font-size:15px;
  font-weight:700;
  line-height:1.3;
  text-align:center;
  box-shadow:none;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-hotel-info__price,.tbe-offer__check,.tbe-offer__navigate) .tbe-primary-button:hover{background:#005a9f}

/* Sorting controls and the live result count share one aligned toolbar. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-hotelpage,.tbe-offerpage) .tbe-content-wrapper > .tbe-result-modifier{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px 18px;
  padding:12px 18px;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-result-modifier > :is(sorting,filter){
  flex:1 1 210px;
  min-width:0;
  max-width:350px;
  padding:0;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-result-modifier :is(.tbe-sorting,.tbe-filter) > .tbe-input-label{margin:0 0 6px}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-result-modifier > :is([data-ro-result-count],.tbe-noTooltip,.tbe-tooltip-count:not([data-ro-count-replaced])){
  display:flex;
  flex:0 1 auto;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  min-width:0;
  max-width:100%;
  min-height:48px;
  margin:0 0 0 auto;
  padding:0;
  color:#48677d;
  font-size:14px;
  line-height:1.4;
  white-space:normal;
  text-align:right;
}

/* Fill the actual sidebar width; native selection states and popups stay intact. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-search-wrapper .tbe-hotelattributes-component__icons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  width:100%;
  padding:5px 0;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-search-wrapper .tbe-hotelattributes-component__icons > input-multiple{
  display:block;
  min-width:0;
  width:100%;
  height:auto;
  margin:0;
}
@media(max-width:680px){
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-hotelpage,.tbe-offerpage) .tbe-content-wrapper > .tbe-result-modifier{padding:12px 14px}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-result-modifier > :is(sorting,filter){flex-basis:100%;max-width:none}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-result-modifier > :is([data-ro-result-count],.tbe-noTooltip,.tbe-tooltip-count:not([data-ro-count-replaced])){
    flex-basis:100%;
    min-height:24px;
    justify-content:flex-start;
    margin-left:0;
    text-align:left;
  }
}

/* City/wellness already have an outer content wrapper. Avoid double padding. */
body:is(.city-search-page,.fit-search-page) :is(.ro-search-content,.ro-search-breadcrumb){font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
body:is(.city-search-page,.fit-search-page) .ro-search-content{padding:16px 0 28px}
body:is(.city-search-page,.fit-search-page) :is(.city-search-heading,.fit-search-heading,.ro-search-editorial,.city-provider-note,.fit-provider-note,.city-load-error,.fit-load-error){margin-inline:var(--ro-results-inset)}
body:is(.city-search-page,.fit-search-page) .ro-search-title{font-size:32px;line-height:1.2;letter-spacing:normal}
body:is(.city-search-page,.fit-search-page) :is(.city-search-heading,.fit-search-heading){display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
body:is(.city-search-page,.fit-search-page) :is(.city-search-heading,.fit-search-heading) .ro-search-title{margin-bottom:8px}
body:is(.city-search-page,.fit-search-page) :is(.city-search-heading,.fit-search-heading) p{max-width:690px;margin:0;font-size:14px;line-height:1.5;color:#647886}
body:is(.city-search-page,.fit-search-page) :is(.city-direct,.fit-direct){flex:none;font-size:12px}

@media(max-width:991px){
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) > .tbe-search-wrapper{position:static;top:auto}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) > .tbe-content-wrapper{margin-top:16px}
  body:is(.city-search-page,.fit-search-page) :is(.city-search-heading,.fit-search-heading){display:block}
  body:is(.city-search-page,.fit-search-page) :is(.city-direct,.fit-direct){display:inline-block;margin-top:8px}
}
@media(max-width:680px){
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode){--ro-results-inset:12px}
  body.home-page.results-mode .hero-layout,
  body.destination-page.destination-results-mode .destination-search-shell > .container,
  body:is(.city-search-page,.fit-search-page) .ro-search-container{width:calc(100% - 16px)}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) :is(.header-inner,.destination-hero-content){width:calc(100% - 32px)}
  body:is(.city-search-page,.fit-search-page) .ro-search-container{margin-top:16px}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-header,
  body:is(.city-search-page,.fit-search-page) .ro-search-title{font-size:27px}
  :is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe :is(.tbe-regionpage,.tbe-hotelpage,.tbe-offerpage) .tbe-search-wrapper searchbox{border-radius:16px}
}

/* V26.00.35: approved readable hotel-list price and qualifiers. */
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-hotelpage .tbe-hotel-info__price .tbe-primary-button {
 font-size:24px!important;font-weight:700!important;line-height:1.3!important;min-height:52px!important;
 padding:10px 14px!important;display:inline-flex!important;align-items:baseline;justify-content:center;
 flex-wrap:wrap;gap:2px 4px;white-space:normal!important;height:auto!important;
}
:is(body.home-page.results-mode,body.destination-page.destination-results-mode) tbe .tbe-hotelpage .tbe-hotel-info__price .tbe-primary-button span {
 font-size:16px!important;line-height:1.3!important;
}
