.hb-search-card .button{padding:0 18px;height:40px;line-height:38px}
.hb-destination-wrap{position:relative}
.hb-suggest-box{position:absolute;left:0;right:0;top:100%;z-index:99;background:#fff;border:1px solid #c3c4c7;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.08);max-height:260px;overflow:auto;margin-top:6px}
.hb-suggest-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid #f0f0f1}
.hb-suggest-item:last-child{border-bottom:0}
.hb-suggest-item:hover,.hb-suggest-item.is-active{background:#f6f7f7}
.hb-help{display:block;color:#666;margin-top:5px}
.hb-results-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hb-result-card{margin:0}
@media (max-width:900px){.hb-results-list{grid-template-columns:1fr}}

.hb-muted{color:#666;margin-top:-6px}.hb-results-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.hb-summary-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:#f6f7f7;border:1px solid #e0e0e0;border-radius:10px;padding:14px;margin:14px 0}.hb-summary-label{display:block;font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.hb-meta-line{color:#555}.hb-note{background:#fff8e5;border:1px solid #f0d79a;padding:10px 12px;border-radius:8px;margin:12px 0}.hb-result-card{padding:0;overflow:hidden}.hb-result-image-wrap{display:block;aspect-ratio:16/9;background:#eef1f4}.hb-result-image{width:100%;height:100%;object-fit:cover;display:block}.hb-result-top{display:flex;justify-content:space-between;gap:12px;padding:16px 16px 0}.hb-result-card h3{margin:0 0 4px 0;font-size:30px;line-height:1.08}.hb-result-card h3 a{text-decoration:none;color:inherit}.hb-subline{color:#666}.hb-price-box{text-align:right;min-width:120px}.hb-price-box span{display:block;font-size:12px;color:#666;text-transform:uppercase}.hb-price-box strong{display:block;font-size:28px;line-height:1.1}.hb-price-box small{display:block;color:#666}.hb-badges{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px;margin:12px 0}.hb-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f0f0f1;font-size:13px;font-weight:600}.hb-pill-soft{background:#eef5ff;color:#1d4f91}.hb-pill-ok{background:#e8f7ed;color:#136a2a}.hb-pill-warn{background:#fff1e8;color:#a24b10}.hb-pill-neutral{background:#f0f0f1;color:#555}.hb-result-card>p,.hb-cxl-text{padding:0 16px;margin:0 0 10px}.hb-cxl-text{color:#444}.hb-result-actions{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 16px;align-items:flex-start}.hb-inline-details{margin-left:auto}.hb-hotel-hero{display:grid;grid-template-columns:minmax(320px,1fr) 1.2fr;gap:18px;align-items:start}.hb-hotel-image{width:100%;border-radius:10px;display:block;object-fit:cover;max-height:420px}.hb-hotel-title{font-size:38px;line-height:1.05;margin:8px 0 10px}.hb-desc{color:#444}.hb-rate-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hb-rate-card{margin:0}.hb-hotel-main .hb-badges{padding:0;margin:0 0 8px}.hb-hotel-image-col{min-width:0}.hb-hotel-main{min-width:0}
@media (max-width:900px){.hb-summary-bar,.hb-hotel-hero,.hb-rate-list{grid-template-columns:1fr}.hb-result-top{flex-direction:column}.hb-price-box{text-align:left}.hb-result-card h3,.hb-hotel-title{font-size:32px}.hb-inline-details{margin-left:0;width:100%}}

.hb-result-image-wrap{
  /*
   * Use an explicit aspect ratio instead of a fixed height.  A fixed
   * height causes grey bars to appear below the image when the image
   * is shorter than the container.  By using `aspect-ratio` we can
   * automatically scale the height based on the card width, ensuring
   * a consistent and natural‐looking gallery on all screen sizes.
   */
  display:block;
  position:relative;
  background:#f2f2f2;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:10px 10px 0 0;
}
.hb-result-image{
  /*
   * Allow the image to fill its container completely.  Setting both
   * `width` and `height` to 100% with `object-fit: cover` ensures
   * that images cover the available space without leaving grey
   * patches.  The fallback styling for missing images is handled
   * separately by the `.is-fallback` class.
   */
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#f2f2f2;
}
.hb-result-image.is-fallback,.hb-hotel-image.is-fallback{object-fit:contain;padding:24px;opacity:.55}
.hb-hotel-image{display:block;width:100%;max-width:100%;height:auto;min-height:260px;object-fit:cover;background:#f2f2f2;border-radius:12px}

.hb-search-hero{padding:28px}.hb-search-hero-copy{max-width:780px}.hb-search-form{margin-top:16px}.hb-search-card .hb-grid{align-items:end}.hb-results-head h2{margin:8px 0 8px}.hb-results-list{margin-top:18px}.hb-result-card .button.button-primary{border-radius:10px}.hb-result-card .button.button-secondary{border-radius:10px}.hb-rate-card .button.button-primary{width:100%;justify-content:center}.hb-hotel-shell>h2{margin-top:8px}.hb-summary-bar>div{background:#fff;border:1px solid #e7e7e7;border-radius:12px;padding:12px}.hb-result-card h3{font-size:28px}.hb-search-card p{max-width:860px}.hb-hotel-main p:last-child{margin-bottom:0}

.hb-results-shell,
.hb-hotel-shell{
  max-width:1180px;
  margin:0 auto 28px;
  padding:16px 16px 22px;
  border-radius:22px;
}
.hb-hotel-shell{padding-top:14px}
.hb-progress--compact{margin:2px 0 10px}
.hb-hotel-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.hb-back-link--hotel{margin-bottom:16px}
.hb-progress{margin:10px 0 18px}
.hb-progress ol{display:flex;gap:10px;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap}
.hb-step{display:flex;align-items:center;gap:8px;color:#64748b;font-weight:700;font-size:14px;line-height:1}
.hb-step__dot{width:10px;height:10px;border-radius:999px;border:2px solid rgba(15,23,42,.22);display:inline-block}
.hb-step--done{color:#2f855a}.hb-step--done .hb-step__dot{background:#2f855a;border-color:#2f855a}
.hb-step--active{color:#111827}.hb-step--active .hb-step__dot{background:#111827;border-color:#111827}
.hb-progress ol .hb-step:not(:last-child)::after{content:"";display:inline-block;width:24px;height:2px;background:rgba(15,23,42,.12);margin-left:2px}
.hb-hotel-hero{grid-template-columns:minmax(380px,1.05fr) minmax(0,1fr);gap:24px;margin-bottom:22px}
.hb-hotel-gallery-main{position:relative;overflow:hidden;border-radius:16px;background:#f3f5f7}
.hb-hotel-gallery-main .hb-hotel-image{width:100%;aspect-ratio:16/10;max-height:none;min-height:0;border-radius:16px;display:block;object-fit:cover}
.hb-hotel-thumbs{display:flex;gap:10px;overflow:auto;padding-top:10px}
.hb-hotel-thumb{border:2px solid transparent;border-radius:14px;padding:0;background:#fff;cursor:pointer;flex:0 0 auto;line-height:0;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.hb-hotel-thumb img{width:88px;height:64px;object-fit:cover;border-radius:12px;display:block}
.hb-hotel-thumb.is-active{border-color:#1d7a3f}
.hb-hotel-facilities{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.hb-facility-pill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#eef7f2;color:#246b46;font-size:13px;font-weight:700}
.hb-hotel-session{margin-top:14px;color:#475569}
.hb-rate-list{align-items:stretch}
.hb-rate-card{display:flex;flex-direction:column;min-height:100%;padding:20px;border-radius:18px;border:1px solid rgba(15,23,42,.10);box-shadow:0 10px 28px rgba(15,23,42,.04)}
.hb-rate-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.hb-rate-card__head h4{margin:0;font-size:18px;line-height:1.25;font-weight:900}
.hb-rate-price{font-size:18px;line-height:1.2;font-weight:900;color:#0f172a;text-align:right;white-space:nowrap}
.hb-rate-card__body{display:flex;flex-direction:column;gap:8px;flex:1}
.hb-rate-card__body p{margin:0}
.hb-rate-card__actions{margin-top:18px}
.hb-rate-card__actions .button{width:100%;justify-content:center;border-radius:14px;height:46px;display:inline-flex;align-items:center}

@media (max-width:900px){
  .hb-results-shell,.hb-hotel-shell{padding:14px 14px 18px}
  .hb-hotel-hero{grid-template-columns:1fr;gap:18px}
  .hb-hotel-thumb img{width:72px;height:54px}
}

/* V2.4.0 RH results + hotel parity phase 1 */
.hb-results-head--phase1{align-items:center;margin-bottom:10px}
.hb-results-head__copy{min-width:0}
.hb-edit-search-btn{white-space:nowrap}
.hb-results-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start;margin-top:18px}
.hb-results-sidebar{position:sticky;top:24px;padding:0}
.hb-results-sidebar__inner{padding:18px}
.hb-results-sidebar h3{margin:0 0 18px;font-size:28px;line-height:1.08}
.hb-filter-block{padding:16px 0;border-top:1px solid rgba(15,23,42,.08)}
.hb-filter-block:first-of-type{border-top:0;padding-top:0}
.hb-filter-label{display:block;font-size:15px;font-weight:800;color:#0f172a;margin:0 0 12px}
.hb-filter-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hb-filter-options{display:grid;gap:10px;max-height:280px;overflow:auto;padding-right:4px}
.hb-filter-check{display:flex;align-items:center;gap:8px;color:#334155;font-size:14px;line-height:1.4}
.hb-filter-check input{width:16px !important;height:16px !important;accent-color:#1f6f43;flex:0 0 auto}
.hb-filter-check small{color:#64748b}
.hb-filter-actions{padding-top:8px}
.hb-filter-actions .hb-btn{width:100%}
.hb-results-main{min-width:0}
.hb-results-topline{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.hb-results-subtitle{margin:0 0 6px;font-size:32px;line-height:1.08;font-weight:900}
.hb-results-query{margin:0;color:#64748b;font-size:15px;line-height:1.6}
.hb-results-count{font-size:15px;color:#334155;white-space:nowrap;padding-top:10px}
.hb-results-list--phase1{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.hb-result-card{display:flex;flex-direction:column;min-height:100%;border-radius:20px}
.hb-result-card__body{display:flex;flex-direction:column;flex:1;padding:0 0 16px}
.hb-result-card__body>p,.hb-result-card__body .hb-cxl-text{padding:0 18px;margin:0 0 10px}
.hb-result-maincopy h3{font-size:24px;line-height:1.14;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hb-price-box strong{font-size:22px}
.hb-price-box{min-width:110px}
.hb-card-features{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px;margin:4px 0 12px}
.hb-feature-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef7f2;color:#355e46;font-size:12px;font-weight:700;line-height:1}
.hb-result-actions{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:4px 18px 0}
.hb-result-cta{min-width:180px}
.hb-inline-details summary{cursor:pointer;color:#475569;font-weight:700}
.hb-inline-details .hb-pre{margin-top:10px}

.hb-hotel-search-summary{margin:14px 0 0;padding:12px 14px;border-radius:14px;background:#f7faf8;border:1px solid rgba(31,111,67,.12);color:#33523f;font-size:14px}
.hb-gallery-open{padding:0;border:0;background:transparent;display:block;width:100%;cursor:zoom-in}
.hb-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.92);color:#111827;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(15,23,42,.10)}
.hb-gallery-nav--prev{left:14px}.hb-gallery-nav--next{right:14px}
.hb-gallery-open .hb-hotel-image{cursor:zoom-in}
.hb-rate-list--phase1{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}
.hb-room-card__sub{margin:6px 0 0;color:#64748b;font-size:14px;line-height:1.5}
.hb-rate-price__label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:6px}
.hb-room-rate-list{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.hb-room-rate-item.is-hidden{display:none}
.hb-room-card.is-expanded .hb-room-rate-item.is-hidden{display:block}
.hb-room-rate-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:14px;background:#fff}
.hb-room-rate-row__meta{min-width:0}
.hb-room-rate-row__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.hb-room-rate-row__service{font-size:18px;font-weight:800;color:#111827;margin-bottom:6px}
.hb-room-rate-row__details{color:#475569;font-size:14px;line-height:1.55;margin-bottom:6px}
.hb-room-rate-row__price{min-width:220px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:12px}
.hb-room-rate-row__price strong{font-size:28px;line-height:1.05;font-weight:900;color:#0f172a;text-align:right}
.hb-rate-card__actions--more{margin-top:14px}
.hb-rate-card__actions--more .hb-btn{width:100%}
.hb-hotel-extra{display:grid;gap:20px;margin-top:26px}
.hb-hotel-extra-block{padding:0}
.hb-desc--full{color:#334155;line-height:1.75}
.hb-facility-grid{display:flex;flex-wrap:wrap;gap:10px}
.hb-facility-pill--large{padding:10px 14px;font-size:14px}
.hb-map-address{margin:0 0 12px;color:#475569}
.hb-map-wrap{border:1px solid rgba(15,23,42,.10);border-radius:18px;overflow:hidden;background:#f8fafc}
.hb-map-wrap iframe{display:block;width:100%;height:360px;border:0}

.hb-lightbox{position:fixed;inset:0;z-index:2147483647;background:rgba(2,6,23,.92);display:flex;align-items:center;justify-content:center;padding:24px}
.hb-lightbox__stage{max-width:min(1200px,88vw);max-height:88vh}
.hb-lightbox__stage img{display:block;max-width:100%;max-height:88vh;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.hb-lightbox__close,.hb-lightbox__nav{position:absolute;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.14);color:#fff;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.hb-lightbox__close{top:20px;right:20px;width:48px;height:48px;font-size:28px}
.hb-lightbox__nav{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:30px}
.hb-lightbox__nav--prev{left:20px}.hb-lightbox__nav--next{right:20px}

@media (min-width:1181px){
  .hb-results-list--phase1{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1180px){
  .hb-results-layout{grid-template-columns:1fr}
  .hb-results-sidebar{position:static}
}
@media (max-width:980px){
  .hb-results-topline{display:block}
  .hb-results-count{padding-top:12px;white-space:normal}
  .hb-rate-list--phase1,.hb-results-list--phase1{grid-template-columns:1fr}
  .hb-room-rate-row{grid-template-columns:1fr}
  .hb-room-rate-row__price{align-items:flex-start;min-width:0}
}
@media (max-width:768px){
  .hb-results-subtitle{font-size:26px}
  .hb-results-query{font-size:14px}
  .hb-gallery-nav{width:40px;height:40px;font-size:22px}
  .hb-map-wrap iframe{height:300px}
  .hb-lightbox{padding:16px}
  .hb-lightbox__nav{width:44px;height:44px;font-size:24px}
  .hb-lightbox__close{width:42px;height:42px}
}


/* V2.4.1 hotel detail + booking parity polish */
.hb-hotel-shell{box-shadow:0 18px 42px rgba(15,23,42,.05)}
.hb-hotel-gallery-main{box-shadow:0 14px 30px rgba(15,23,42,.08)}
.hb-hotel-thumbs{scrollbar-width:thin;scrollbar-color:rgba(15,23,42,.22) transparent}
.hb-hotel-thumbs::-webkit-scrollbar{height:8px}
.hb-hotel-thumbs::-webkit-scrollbar-track{background:transparent}
.hb-hotel-thumbs::-webkit-scrollbar-thumb{background:rgba(15,23,42,.18);border-radius:999px}
.hb-rate-list--phase1{margin-top:18px}
.hb-room-card{padding:22px}
.hb-room-card__sub{min-height:21px}
.hb-room-rate-row{align-items:center}
.hb-room-rate-row.is-primary{border-color:rgba(31,111,67,.18);box-shadow:0 10px 24px rgba(31,111,67,.07)}
.hb-room-rate-row__price strong{letter-spacing:-.02em}
.hb-rate-card__actions--more .hb-btn{min-height:52px;font-weight:900}
.hb-rate-card__actions--more .hb-btn[aria-expanded="true"]{border-color:rgba(31,111,67,.34);box-shadow:0 0 0 3px rgba(31,111,67,.08) inset}
.hb-map-wrap{box-shadow:0 14px 32px rgba(15,23,42,.05)}
@media (max-width:980px){
  .hb-room-card{padding:18px}
}

/* V2.4.2 results cleanup + hotel sidebar parity + room-card rhythm */
.hb-summary-bar{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:stretch}
.hb-results-head--phase1{margin-bottom:14px}
.hb-results-head--phase1 .hb-muted{max-width:780px;margin-top:0;color:#64748b;line-height:1.6}
.hb-results-topline{margin-bottom:16px}
.hb-results-subtitle{font-size:30px}
.hb-results-count{padding-top:6px}
.hb-meta-line{margin:8px 0 0;color:#475569}
.hb-result-card__body{gap:0}
.hb-result-top{align-items:flex-start}
.hb-result-maincopy{min-width:0}
.hb-result-maincopy .hb-subline{margin-top:4px}
.hb-result-card .hb-badges{margin-top:10px}
.hb-result-card .hb-card-features{min-height:34px}
.hb-result-card .hb-cxl-text{min-height:46px}
.hb-result-actions{align-items:flex-start}
.hb-inline-details{min-width:0}
.hb-inline-details summary{list-style:none}
.hb-inline-details summary::-webkit-details-marker{display:none}
.hb-inline-details__body{margin-top:10px;padding:12px 14px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#f8fafc;color:#334155;font-size:13px;line-height:1.6;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.hb-inline-details__body ul{margin:0;padding-left:18px}
.hb-inline-details__body li{margin:0 0 6px}
.hb-inline-details__body li:last-child{margin-bottom:0}

.hb-hotel-main{position:relative}
@media (min-width:1025px){
  .hb-hotel-main{position:sticky;top:108px;align-self:start}
}
.hb-desc{color:#334155;line-height:1.72}
.hb-hotel-offer-card{margin:16px 0 0;padding:16px 18px;border:1px solid rgba(31,111,67,.14);border-radius:18px;background:linear-gradient(180deg,#f7fbf8 0%,#f1f7f3 100%);box-shadow:0 12px 28px rgba(31,111,67,.08)}
.hb-hotel-offer-card__label{font-size:12px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#5b6f63;margin-bottom:8px}
.hb-hotel-offer-card__value{font-size:30px;line-height:1.04;font-weight:900;color:#0f172a}
.hb-hotel-offer-card__meta{margin-top:8px;color:#475569;font-size:14px;line-height:1.55}
.hb-hotel-offer-card .hb-btn{margin-top:14px;width:100%;justify-content:center}

.hb-rate-list--phase1{align-items:start}
.hb-room-card{gap:0}
.hb-rate-card__head{min-height:58px;align-items:flex-start}
.hb-room-card__sub{margin-top:4px}
.hb-rate-price{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;min-width:150px}
.hb-room-rate-list{gap:14px}
.hb-room-rate-row{padding:16px;align-items:stretch}
.hb-room-rate-row__meta{display:flex;flex-direction:column;justify-content:space-between}
.hb-room-rate-row__details:last-of-type{margin-bottom:0}
.hb-room-rate-row__price{gap:14px;min-width:200px}
.hb-room-rate-row__price strong{font-size:26px}
.hb-rate-card__actions--more{margin-top:16px}
.hb-rate-card__actions--more .hb-btn{background:#fff}

@media (max-width:1180px){
  .hb-result-card .hb-cxl-text{min-height:0}
}
@media (max-width:980px){
  .hb-results-subtitle{font-size:28px}
  .hb-hotel-main{position:static}
  .hb-rate-price{align-items:flex-start;min-width:0}
}
@media (max-width:680px){
  .hb-summary-bar{grid-template-columns:1fr}
  .hb-hotel-offer-card__value{font-size:26px}
  .hb-room-rate-row__price strong{font-size:24px}
}


/* V2.4.3 final UI parity polish before certification */
.hb-results-head--phase1 .hb-muted{max-width:860px}
.hb-results-topline{align-items:flex-end}
.hb-results-count{font-weight:700}
.hb-result-card .hb-tax-text{min-height:38px}
.hb-result-actions{padding-top:10px;border-top:1px solid rgba(15,23,42,.06);margin:10px 18px 0}
.hb-inline-details summary{font-size:14px}
.hb-inline-details__body{font-size:12px}
.hb-hotel-offer-card__meta{font-weight:600}
.hb-rate-list--phase1{grid-template-columns:1fr;gap:20px}
.hb-room-card{padding:20px 20px 18px}
.hb-room-rate-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.hb-room-rate-row__price{min-width:230px}
.hb-hotel-extra{margin-top:30px}
.hb-hotel-extra .hb-section-title{margin-bottom:12px}
@media (max-width:980px){
  .hb-rate-list--phase1{grid-template-columns:1fr}
  .hb-room-rate-row{grid-template-columns:1fr}
  .hb-room-rate-row__price{min-width:0}
}

/* V2.4.4 final polish before certification */
.hb-result-maincopy h3,
.hb-result-maincopy .hb-subline,
.hb-result-room,
.hb-result-board,
.hb-result-penalty{
  overflow-wrap:anywhere;
}
.hb-result-room,
.hb-result-board{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.hb-result-room{-webkit-line-clamp:2;min-height:74px}
.hb-result-board{-webkit-line-clamp:2;min-height:46px}
.hb-result-card .hb-tax-text{min-height:42px}
.hb-result-penalty{min-height:66px}
.hb-result-actions{
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.hb-result-actions .hb-result-cta{
  min-width:176px;
}
.hb-inline-details--cxl,
.hb-inline-details--rate{
  width:100%;
}
.hb-inline-details--cxl summary,
.hb-inline-details--rate summary{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 12px;
  border-radius:12px;
  color:#475569;
  font-size:13px;
  font-weight:800;
  background:transparent;
}
.hb-inline-details--cxl[open] summary,
.hb-inline-details--rate[open] summary{
  margin-bottom:8px;
}
.hb-inline-details--cxl summary span,
.hb-inline-details--rate summary span{pointer-events:none}
.hb-inline-details__body--comment{
  white-space:normal;
}
.hb-room-card__sub{min-height:40px}
.hb-room-rate-row__details{
  min-height:44px;
}
.hb-room-rate-row__meta > .hb-inline-details--rate{
  margin-top:2px;
}
@media (max-width:1180px){
  .hb-result-room{min-height:0}
  .hb-result-board,.hb-result-card .hb-tax-text,.hb-result-penalty{min-height:0}
}

/* V2.5.1 success-url + results details polish */
.hb-inline-details--cxl summary,
.hb-inline-details--rate summary{
  outline:none !important;
  border:1px solid transparent;
  transition:border-color .15s ease, box-shadow .15s ease, color .15s ease, background .15s ease;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
}
.hb-inline-details--cxl summary:focus,
.hb-inline-details--rate summary:focus{
  outline:none !important;
  box-shadow:none;
}
.hb-inline-details--cxl summary:focus:not(:focus-visible),
.hb-inline-details--rate summary:focus:not(:focus-visible){
  border-color:transparent;
}
.hb-inline-details--cxl summary:focus-visible,
.hb-inline-details--rate summary:focus-visible{
  border-color:rgba(31,111,67,.35);
  box-shadow:0 0 0 3px rgba(31,111,67,.10);
}
.hb-result-actions .hb-inline-details--cxl{
  margin-top:2px;
}
.hb-result-actions .hb-inline-details__body{
  border-radius:14px;
}

.hb-hotel-facilities-wrap{margin-top:14px;padding:14px;border:1px solid #e6efe9;border-radius:16px;background:#fbfefc}.hb-hotel-facilities-title{font-size:13px;font-weight:800;color:#1f5135;margin-bottom:10px;text-transform:uppercase;letter-spacing:.03em}

/* V2.8.0.0 front UX phase 1: results cards + filters RH4 alignment */
.hb-results-layout{gap:26px}
.hb-results-sidebar{border-radius:22px;box-shadow:0 18px 42px rgba(15,23,42,.05);overflow:hidden}
.hb-results-sidebar__inner{padding:20px 18px 18px}
.hb-results-sidebar h3{font-size:24px;margin-bottom:16px}
.hb-filter-block{padding:14px 0}
.hb-filter-label{font-size:14px;margin-bottom:10px;letter-spacing:.01em}
.hb-filter-options{gap:8px;max-height:240px;padding-right:6px;scrollbar-width:thin;scrollbar-color:rgba(15,23,42,.18) transparent}
.hb-filter-options::-webkit-scrollbar{width:8px}
.hb-filter-options::-webkit-scrollbar-track{background:transparent}
.hb-filter-options::-webkit-scrollbar-thumb{background:rgba(15,23,42,.18);border-radius:999px}
.hb-filter-check{gap:10px;font-size:13px;color:#475569}
.hb-filter-check small{font-size:11px;color:#94a3b8}
.hb-filter-actions .hb-btn{border-radius:12px;min-height:42px}

.hb-summary-bar{padding:12px;gap:10px;border-radius:16px;background:#f8faf9}
.hb-summary-bar>div{padding:11px 12px;border-radius:14px}
.hb-summary-label{font-size:11px}
.hb-meta-line{font-size:15px;font-weight:700;color:#334155}
.hb-note{background:#f5f9ff;border-color:#cfe0f7;color:#475569;border-radius:12px;padding:9px 12px}

.hb-results-topline{margin-bottom:14px}
.hb-results-subtitle{font-size:28px;letter-spacing:-.02em}
.hb-results-query{font-size:14px;line-height:1.55}
.hb-results-count{font-size:14px;color:#475569}

.hb-results-list--phase1{gap:20px}
.hb-result-card{border-radius:24px;box-shadow:0 16px 34px rgba(15,23,42,.05);border:1px solid rgba(15,23,42,.06)}
.hb-result-image-wrap{min-height:205px;border-radius:24px 24px 0 0}
.hb-result-image{height:205px}
.hb-result-card__body{padding-bottom:14px}
.hb-result-top{padding:14px 16px 0;gap:10px}
.hb-result-maincopy h3{font-size:20px;line-height:1.15;margin-bottom:2px}
.hb-result-maincopy .hb-subline{font-size:13px;color:#64748b}
.hb-price-box{min-width:98px}
.hb-price-box span{font-size:11px}
.hb-price-box strong{font-size:18px;letter-spacing:-.02em}
.hb-price-box small{font-size:11px}
.hb-result-card .hb-badges{padding:0 16px;margin:10px 0 8px;gap:6px}
.hb-pill{padding:5px 9px;font-size:11px}
.hb-card-features{padding:0 16px;margin:2px 0 10px;gap:6px;min-height:auto}
.hb-feature-pill{padding:5px 8px;font-size:11px;background:#edf6ef;color:#2f6b46}
.hb-feature-pill--more{background:#f3f4f6;color:#475569}
.hb-result-card__body>p,.hb-result-card__body .hb-cxl-text{padding:0 16px;margin:0 0 8px}
.hb-result-room,.hb-result-board,.hb-result-card .hb-tax-text,.hb-result-penalty{min-height:0 !important}
.hb-result-room,.hb-result-board{font-size:14px;line-height:1.45}
.hb-result-room strong,.hb-result-board strong{font-weight:800}
.hb-result-card .hb-tax-text{font-size:12px;color:#9a6b10;line-height:1.45}
.hb-result-penalty{font-size:13px;color:#334155;line-height:1.5}
.hb-result-card .hb-inline-details--rate{display:none}
.hb-result-actions{margin:8px 16px 0;padding:10px 0 0;border-top:1px solid rgba(15,23,42,.06);gap:8px}
.hb-result-actions .hb-result-cta{width:100%;min-width:0;min-height:48px;justify-content:center;border-radius:14px;font-weight:800}
.hb-inline-details--cxl{width:100%}
.hb-inline-details--cxl summary{min-height:20px;padding:0;justify-content:center;font-size:12px;color:#64748b}
.hb-inline-details__body{margin-top:8px;padding:10px 12px;border-radius:12px}

@media (min-width:981px){
  .hb-results-list--phase1{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1180px){
  .hb-results-layout{gap:18px}
}
@media (max-width:768px){
  .hb-results-sidebar__inner{padding:16px}
  .hb-results-subtitle{font-size:24px}
  .hb-result-image-wrap{min-height:190px}
  .hb-result-image{height:190px}
  .hb-result-top{padding:14px 14px 0}
  .hb-result-card .hb-badges,.hb-card-features,.hb-result-card__body>p,.hb-result-card__body .hb-cxl-text{padding-left:14px;padding-right:14px}
  .hb-result-actions{margin-left:14px;margin-right:14px}
}


/* V2.8.0.1 results UX hotfix: CTA contrast + mobile header/card polish */
.hb-result-actions .hb-result-cta,
.hb-result-actions .hb-result-cta:visited,
.hb-result-actions .hb-result-cta:hover,
.hb-result-actions .hb-result-cta:active,
.hb-result-actions .hb-result-cta:focus{
  color:#fff !important;
  text-decoration:none;
}
.hb-result-actions .hb-result-cta:hover,
.hb-result-actions .hb-result-cta:focus,
.hb-result-actions .hb-result-cta:active{
  background:#1a623b;
  border-color:#1a623b;
}
.hb-edit-search-btn,
.hb-edit-search-btn:visited{
  color:#0f172a;
}
.hb-edit-search-btn:hover,
.hb-edit-search-btn:focus{
  color:#0f172a;
  background:#f8fafc;
  border-color:rgba(15,23,42,.18);
}

@media (max-width:768px){
  .hb-results-head--phase1{
    display:block;
    margin-bottom:10px;
  }
  .hb-results-head h2{
    font-size:40px;
    line-height:.96;
    letter-spacing:-.03em;
    margin:8px 0 6px;
    max-width:12ch;
  }
  .hb-results-head--phase1 .hb-muted{
    display:none;
  }
  .hb-edit-search-btn{
    display:inline-flex;
    margin-top:8px;
    min-height:44px;
    padding:0 16px;
  }
  .hb-summary-bar{
    padding:10px;
    gap:8px;
    margin:12px 0 10px;
  }
  .hb-summary-bar>div{
    padding:10px 12px;
  }
  .hb-meta-line{
    margin:8px 0 10px;
    font-size:14px;
    line-height:1.45;
  }
  .hb-note{
    margin:10px 0 12px;
    padding:10px 12px;
    font-size:14px;
    line-height:1.5;
  }
  .hb-results-topline{
    margin-bottom:12px;
  }
  .hb-results-subtitle{
    font-size:22px;
    line-height:1.04;
  }
  .hb-results-query,
  .hb-results-count{
    font-size:13px;
    line-height:1.45;
  }
  .hb-results-list--phase1{
    gap:16px;
  }
  .hb-result-card{
    border-radius:22px;
  }
  .hb-result-image-wrap{
    min-height:170px;
    border-radius:22px 22px 0 0;
  }
  .hb-result-image{
    height:170px;
  }
  .hb-result-top{
    gap:8px;
    padding:12px 14px 0;
  }
  .hb-result-maincopy h3{
    font-size:18px;
    line-height:1.12;
    margin-bottom:4px;
  }
  .hb-result-maincopy .hb-subline{
    font-size:12px;
  }
  .hb-price-box{
    min-width:84px;
  }
  .hb-price-box strong{
    font-size:16px;
    line-height:1.05;
  }
  .hb-price-box span,
  .hb-price-box small{
    font-size:10px;
  }
  .hb-result-card .hb-badges{
    margin:8px 0 6px;
    gap:5px;
  }
  .hb-pill,
  .hb-feature-pill,
  .hb-feature-pill--more{
    font-size:11px;
    padding:5px 8px;
  }
  .hb-card-features{
    margin:0 0 8px;
    gap:5px;
  }
  .hb-result-card__body>p,
  .hb-result-card__body .hb-cxl-text{
    margin:0 0 7px;
  }
  .hb-result-room,
  .hb-result-board{
    font-size:13px;
    line-height:1.42;
  }
  .hb-result-card .hb-tax-text,
  .hb-result-penalty{
    font-size:12px;
    line-height:1.45;
  }
  .hb-result-actions{
    margin:8px 14px 0;
    padding-top:8px;
    gap:6px;
  }
  .hb-result-actions .hb-result-cta{
    min-height:46px;
    font-size:16px;
  }
  .hb-inline-details--cxl summary{
    min-height:18px;
    font-size:11px;
  }
}


/* V2.8.2.0 hotel detail premium polish (hero/gallery/sidebar/room cards RH4 alignment) */
.hb-hotel-shell{
  padding:20px 22px 26px;
  border-radius:24px;
  box-shadow:0 24px 60px rgba(15,23,42,.06);
}
.hb-hotel-topbar{margin-bottom:6px}
.hb-hotel-shell > h2{
  font-size:30px;
  line-height:1.06;
  letter-spacing:-.02em;
  margin:6px 0 6px;
}
.hb-back-link--hotel{margin-bottom:12px}
.hb-hotel-hero{
  grid-template-columns:minmax(420px,1.08fr) minmax(360px,.92fr);
  gap:28px;
  margin-bottom:28px;
}
.hb-hotel-gallery-main{
  border-radius:20px;
  box-shadow:0 18px 36px rgba(15,23,42,.10);
  background:#eef2f4;
}
.hb-hotel-gallery-main .hb-hotel-image{
  aspect-ratio:16/9;
  border-radius:20px;
}
.hb-gallery-nav{
  width:46px;
  height:46px;
  border:none;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 30px rgba(15,23,42,.16);
}
.hb-gallery-nav:hover{background:#fff}
.hb-hotel-thumbs{
  gap:12px;
  padding-top:12px;
  padding-bottom:2px;
}
.hb-hotel-thumb{
  border-radius:16px;
  box-shadow:0 8px 20px rgba(15,23,42,.08);
}
.hb-hotel-thumb img{
  width:92px;
  height:66px;
  border-radius:14px;
}
.hb-hotel-main{
  padding:8px 2px 0;
}
.hb-hotel-main .hb-badges{gap:10px;margin:0 0 12px}
.hb-hotel-main .hb-subline{
  font-size:18px;
  color:#64748b;
  margin-bottom:8px;
}
.hb-hotel-title{
  font-size:42px;
  line-height:1.02;
  letter-spacing:-.03em;
  margin:6px 0 10px;
}
.hb-hotel-search-summary{
  margin:14px 0 14px;
  border-radius:16px;
  padding:13px 16px;
}
.hb-hotel-main > p{
  margin:12px 0 0;
}
.hb-desc{
  margin-top:14px;
  color:#445163;
  font-size:17px;
  line-height:1.78;
}
.hb-hotel-offer-card{
  margin-top:18px;
  padding:18px 20px;
  border-radius:20px;
  background:linear-gradient(180deg,#f8fcf9 0%,#f0f7f3 100%);
  box-shadow:0 18px 34px rgba(31,111,67,.08);
}
.hb-hotel-offer-card__label{margin-bottom:9px}
.hb-hotel-offer-card__value{
  font-size:36px;
  letter-spacing:-.03em;
}
.hb-hotel-offer-card__meta{
  margin-top:10px;
  line-height:1.45;
}
.hb-hotel-offer-card .hb-btn{
  margin-top:16px;
  min-height:50px;
  border-radius:14px;
  font-size:16px;
  font-weight:800;
}
.hb-hotel-facilities-wrap{
  margin-top:14px;
  padding:16px 18px;
  border-radius:18px;
  background:linear-gradient(180deg,#fcfefd 0%,#f7fbf8 100%);
}
.hb-hotel-facilities-title{margin-bottom:12px}
.hb-hotel-facilities{gap:10px;margin-top:0}
.hb-facility-pill{
  min-height:34px;
  padding:8px 12px;
  font-size:12px;
  letter-spacing:.01em;
}
.hb-rate-list--phase1{
  gap:24px;
  margin-top:16px;
}
.hb-room-card{
  padding:22px 22px 18px;
  border-radius:22px;
  box-shadow:0 14px 30px rgba(15,23,42,.04);
}
.hb-rate-card__head{
  min-height:0;
  margin-bottom:8px;
}
.hb-rate-card__head h4{
  font-size:28px;
  letter-spacing:-.02em;
}
.hb-room-card__sub{
  min-height:0;
  margin-top:2px;
  font-size:14px;
}
.hb-room-rate-list{gap:14px;margin-top:10px}
.hb-room-rate-row{
  grid-template-columns:minmax(0,1fr) 220px;
  gap:18px;
  align-items:center;
  padding:18px 18px;
  border-radius:18px;
  box-shadow:0 8px 18px rgba(15,23,42,.03);
}
.hb-room-rate-row__service{
  font-size:17px;
  margin-bottom:8px;
}
.hb-room-rate-row__details{
  font-size:13px;
  line-height:1.55;
  margin-bottom:4px;
  min-height:0;
}
.hb-room-rate-row__meta .hb-inline-details--rate{margin-top:4px}
.hb-room-rate-row__price{
  min-width:0;
  gap:10px;
}
.hb-room-rate-row__price strong{
  font-size:24px;
  letter-spacing:-.02em;
}
.hb-room-rate-row__price .hb-btn{
  min-width:124px;
  min-height:44px;
  border-radius:12px;
}
.hb-rate-card__actions--more{margin-top:14px}
.hb-rate-card__actions--more .hb-btn{
  min-height:42px;
  border-radius:12px;
  font-weight:800;
}
.hb-hotel-extra{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:24px;
  margin-top:30px;
}
.hb-hotel-extra-block{
  padding:22px 22px 20px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 32px rgba(15,23,42,.04);
}
.hb-hotel-extra-block:nth-child(3){grid-column:1 / -1}
.hb-hotel-extra .hb-section-title{
  margin:0 0 14px;
  font-size:18px;
  letter-spacing:-.01em;
}
.hb-map-wrap{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.08);
}
.hb-map-canvas{min-height:320px}
@media (max-width:1180px){
  .hb-hotel-hero{grid-template-columns:minmax(320px,1fr) minmax(300px,.92fr);gap:22px}
  .hb-hotel-title{font-size:36px}
}
@media (max-width:980px){
  .hb-hotel-shell{padding:16px 16px 22px}
  .hb-hotel-hero{grid-template-columns:1fr;gap:18px}
  .hb-hotel-main{padding-top:0}
  .hb-hotel-title{font-size:34px}
  .hb-hotel-offer-card__value{font-size:30px}
  .hb-room-rate-row{grid-template-columns:1fr;padding:16px}
  .hb-room-rate-row__price{align-items:flex-start}
  .hb-hotel-extra{grid-template-columns:1fr;gap:18px}
  .hb-hotel-extra-block:nth-child(3){grid-column:auto}
}
@media (max-width:680px){
  .hb-hotel-shell > h2{font-size:26px}
  .hb-hotel-title{font-size:28px}
  .hb-hotel-main .hb-subline{font-size:16px}
  .hb-hotel-gallery-main,.hb-hotel-gallery-main .hb-hotel-image{border-radius:18px}
  .hb-gallery-nav{width:42px;height:42px}
  .hb-hotel-thumb img{width:76px;height:56px}
  .hb-hotel-offer-card,.hb-hotel-facilities-wrap,.hb-room-card,.hb-hotel-extra-block{border-radius:18px}
  .hb-room-card{padding:18px 16px 16px}
  .hb-rate-card__head h4{font-size:24px}
  .hb-room-rate-row__price strong{font-size:22px}
  .hb-map-canvas{min-height:260px}
}

/* === HB V2.8.2.1 RH4 hybrid hotel detail + compact room offers + mobile cleanup === */
.hb-hotel-shell{max-width:1240px;margin:0 auto 42px;border-radius:24px;background:#fff;border:1px solid rgba(15,23,42,.10);box-shadow:0 18px 46px rgba(15,23,42,.05);overflow:visible}.hb-hotel-shell .hb-progress{margin-bottom:14px}.hb-hotel-shell>h2{margin:10px 0 8px;font-size:34px;line-height:1.08;letter-spacing:-.035em}.hb-back-link--hotel{display:inline-flex;align-items:center;color:#2f6b20;font-weight:800;text-decoration:none;margin:6px 0 16px}.hb-back-link--hotel:hover{color:#1f4e16;text-decoration:underline}.hb-hotel-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:28px;align-items:start;margin:12px 0 34px}.hb-hotel-image-col,.hb-hotel-main{min-width:0}.hb-hotel-main{border:1px solid rgba(15,23,42,.09);border-radius:22px;background:#fff;padding:22px 24px 24px;box-shadow:0 16px 34px rgba(15,23,42,.045)}@media (min-width:981px){.hb-hotel-main{position:sticky;top:110px;align-self:start}}.hb-hotel-gallery-main{border-radius:22px;background:#f3f5f7;box-shadow:0 14px 34px rgba(15,23,42,.08)}.hb-hotel-gallery-main .hb-hotel-image{aspect-ratio:16/10;border-radius:22px;min-height:0;max-height:none;object-fit:cover}.hb-gallery-nav{width:48px;height:48px;border-radius:999px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.18);color:#111827;font-size:26px;font-weight:900}.hb-hotel-thumbs{gap:10px;padding:12px 2px 4px;scrollbar-width:thin}.hb-hotel-thumb img{width:86px;height:62px;border-radius:12px}.hb-hotel-thumb.is-active{border-color:#237c43;box-shadow:0 0 0 2px rgba(35,124,67,.18)}.hb-hotel-main .hb-badges{gap:8px;padding:0;margin:0 0 12px}.hb-hotel-main .hb-pill{min-height:30px;padding:7px 11px;font-size:12px;font-weight:850}.hb-hotel-title{font-size:32px;line-height:1.08;letter-spacing:-.03em;margin:0 0 7px}.hb-hotel-main .hb-subline{font-size:16px;line-height:1.45;color:#607089;margin:0 0 14px}.hb-hotel-search-summary{margin:14px 0 14px;padding:13px 15px;border-radius:16px;background:#f8fcf9;border:1px solid rgba(35,124,67,.16);color:#31543d;font-size:14px;line-height:1.45}.hb-hotel-main>p{font-size:15px;line-height:1.55;margin:0 0 12px;color:#334155}.hb-hotel-main .hb-desc{font-size:15px;line-height:1.65;color:#475569;margin:12px 0 0;max-height:168px;overflow:hidden;position:relative}.hb-hotel-main .hb-desc:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 78%)}.hb-hotel-offer-card{margin:18px 0 0;padding:18px;border-radius:20px;background:linear-gradient(180deg,#f7fbf8 0%,#f1f8f3 100%);border:1px solid rgba(35,124,67,.16);box-shadow:0 12px 26px rgba(35,124,67,.08)}.hb-hotel-offer-card__label{color:#627366;font-size:12px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.hb-hotel-offer-card__value{font-size:32px;line-height:1.05;letter-spacing:-.035em;font-weight:950;color:#0f172a;margin-top:6px}.hb-hotel-offer-card__meta{color:#475569;font-size:14px;line-height:1.45;font-weight:700;margin-top:7px}.hb-hotel-offer-card .hb-btn,.hb-room-rate-row__price .hb-btn,.hb-result-actions .hb-btn,.hb-result-actions .button{background:#1f7a43!important;border-color:#1f7a43!important;color:#fff!important}.hb-hotel-offer-card .hb-btn:hover,.hb-room-rate-row__price .hb-btn:hover,.hb-result-actions .hb-btn:hover,.hb-result-actions .button:hover{background:#176535!important;border-color:#176535!important;color:#fff!important}.hb-hotel-facilities-wrap{margin-top:14px;padding:14px;border:1px solid rgba(35,124,67,.13);border-radius:18px;background:#fbfefc}.hb-hotel-facilities-title{margin:0 0 10px;font-size:12px;font-weight:900;color:#1f5135;text-transform:uppercase;letter-spacing:.06em}.hb-hotel-facilities{gap:8px;margin:0}.hb-facility-pill{min-height:30px;padding:7px 11px;border-radius:999px;background:#eaf6ef;color:#21703e;font-size:12px;font-weight:850;line-height:1.2}#hb-hotel-rates{font-size:30px;line-height:1.1;letter-spacing:-.03em;margin:12px 0 14px}.hb-rate-list--phase1{display:grid;grid-template-columns:1fr;gap:18px}.hb-room-card{padding:22px 22px 18px;border:1px solid rgba(15,23,42,.09);border-radius:22px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.045)}.hb-rate-card__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start;margin-bottom:14px;min-height:0}.hb-rate-card__head h4{margin:0;font-size:24px;line-height:1.12;letter-spacing:-.025em}.hb-room-card__sub{margin:3px 0 0;color:#64748b;font-size:13px;line-height:1.4;min-height:0}.hb-rate-price{text-align:right;font-weight:950;color:#0f172a;font-size:22px;line-height:1.1;white-space:nowrap}.hb-rate-price__label{display:block;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-bottom:4px}.hb-room-rate-list{display:grid;gap:10px;margin-top:8px}.hb-room-rate-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:18px;align-items:center;padding:16px;border:1px solid rgba(35,124,67,.14);border-radius:18px;background:#fff;box-shadow:none}.hb-room-rate-row.is-primary{background:#fcfffd;border-color:rgba(35,124,67,.20)}.hb-room-rate-row__badges{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.hb-room-rate-row__service{font-size:18px;line-height:1.2;letter-spacing:-.01em;font-weight:900;color:#111827;margin:0 0 8px}.hb-tax-text{font-size:13px;line-height:1.45;color:#8a5a00;margin:0 0 4px}.hb-room-rate-row__details{font-size:13px;line-height:1.45;color:#475569;margin:0;min-height:0}.hb-inline-details--open{margin-top:10px;max-width:660px}.hb-inline-details__summary{font-size:13px;color:#334155;margin-bottom:6px}.hb-inline-details .hb-pre{max-height:76px;overflow:auto;white-space:normal;word-break:break-word;font-size:13px;line-height:1.45;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px}.hb-room-rate-row__price{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px;min-width:0}.hb-room-rate-row__price strong{font-size:24px;line-height:1.05;letter-spacing:-.025em;color:#0f172a;text-align:right}.hb-room-rate-row__price .hb-btn{width:auto;min-width:144px;min-height:42px;border-radius:12px;font-size:13px;font-weight:900;display:inline-flex;justify-content:center;align-items:center;text-decoration:none}.hb-rate-card__actions--more{margin-top:12px}.hb-rate-card__actions--more .hb-btn{width:100%;min-height:42px;border-radius:14px;background:#fff;color:#0f172a;border:1px solid rgba(15,23,42,.15);font-weight:900}.hb-hotel-extra{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:22px;margin-top:28px}.hb-hotel-extra-block{padding:20px 22px;border:1px solid rgba(15,23,42,.09);border-radius:22px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.04)}.hb-hotel-extra-block:nth-child(3){grid-column:1/-1}.hb-hotel-extra .hb-section-title{margin:0 0 14px;font-size:22px;line-height:1.15;letter-spacing:-.02em}.hb-facility-grid{display:flex;flex-wrap:wrap;gap:8px}.hb-facility-pill--large{min-height:34px;padding:8px 12px;font-size:13px}.hb-desc--full{font-size:15px;line-height:1.72;color:#475569}.hb-desc--full p{margin:0 0 12px}.hb-map-address{font-size:15px;color:#475569;margin:0 0 12px}.hb-map-wrap{border-radius:18px;overflow:hidden;border:1px solid rgba(15,23,42,.10);background:#eef2f7}.hb-map-wrap iframe{display:block;width:100%;height:380px;border:0}@media (max-width:1100px){.hb-hotel-hero{grid-template-columns:1fr;gap:22px}.hb-hotel-main{position:static}.hb-hotel-main .hb-desc{max-height:none}.hb-hotel-main .hb-desc:after{display:none}}@media (max-width:760px){.hb-hotel-shell{padding:18px!important;border-radius:22px;max-width:calc(100vw - 28px);overflow:hidden}.hb-hotel-shell .hb-progress ol{gap:10px;flex-wrap:wrap}.hb-hotel-shell .hb-progress li span:last-child{font-size:13px}.hb-hotel-shell>h2{font-size:30px;line-height:1.08;margin-top:6px}.hb-hotel-topbar{margin-bottom:8px}.hb-eyebrow{font-size:12px;padding:7px 11px}.hb-hotel-hero{gap:18px;margin-bottom:26px}.hb-hotel-gallery-main,.hb-hotel-gallery-main .hb-hotel-image{border-radius:20px}.hb-hotel-gallery-main .hb-hotel-image{aspect-ratio:4/3}.hb-gallery-nav{width:42px;height:42px;font-size:24px}.hb-hotel-thumbs{gap:8px;padding-top:10px}.hb-hotel-thumb img{width:78px;height:58px;border-radius:12px}.hb-hotel-main{padding:0;border:0;box-shadow:none;border-radius:0;background:transparent}.hb-hotel-main .hb-badges{gap:8px;margin:4px 0 12px}.hb-hotel-main .hb-pill{font-size:12px;min-height:30px;padding:7px 11px}.hb-hotel-title{font-size:30px;line-height:1.08;margin-bottom:8px}.hb-hotel-main .hb-subline{font-size:17px;line-height:1.35;margin-bottom:12px}.hb-hotel-search-summary{font-size:15px;line-height:1.5;padding:13px 14px;border-radius:18px}.hb-hotel-main>p{font-size:16px;line-height:1.5}.hb-hotel-main .hb-desc{font-size:16px;line-height:1.65;max-height:210px}.hb-hotel-offer-card{padding:17px;border-radius:20px}.hb-hotel-offer-card__value{font-size:32px;line-height:1.08;word-break:break-word}.hb-hotel-offer-card__meta{font-size:14px}.hb-hotel-offer-card .hb-btn{min-height:50px;border-radius:16px;font-size:16px}.hb-hotel-facilities-wrap{border-radius:20px;padding:15px}.hb-facility-pill{font-size:13px;min-height:34px;padding:8px 12px}#hb-hotel-rates{font-size:28px;margin-top:26px}.hb-room-card{padding:18px 16px;border-radius:22px;overflow:hidden}.hb-rate-card__head{display:block;margin-bottom:14px}.hb-rate-card__head h4{font-size:28px;line-height:1.1;max-width:100%}.hb-room-card__sub{font-size:15px;line-height:1.4;margin-bottom:10px}.hb-rate-price{text-align:left;font-size:22px;white-space:normal;margin-top:10px}.hb-rate-price__label{font-size:11px}.hb-room-rate-row{display:block;padding:16px;border-radius:20px}.hb-room-rate-row__service{font-size:19px;line-height:1.25}.hb-tax-text,.hb-room-rate-row__details{font-size:14px;line-height:1.55}.hb-inline-details--open{max-width:100%}.hb-inline-details .hb-pre{max-height:96px;font-size:14px;line-height:1.5}.hb-room-rate-row__price{align-items:flex-start;margin-top:16px}.hb-room-rate-row__price strong{text-align:left;font-size:28px;max-width:100%;word-break:break-word}.hb-room-rate-row__price .hb-btn{width:100%;min-height:50px;border-radius:16px;font-size:16px}.hb-rate-card__actions--more .hb-btn{min-height:48px;border-radius:16px;font-size:15px}.hb-hotel-extra{display:grid;grid-template-columns:1fr;gap:16px;margin-top:22px}.hb-hotel-extra-block{padding:18px 16px;border-radius:22px}.hb-hotel-extra .hb-section-title{font-size:24px;line-height:1.15}.hb-desc--full{font-size:16px;line-height:1.72}.hb-map-wrap iframe{height:285px}}@media (max-width:430px){.hb-hotel-shell{max-width:calc(100vw - 20px);padding:16px!important}.hb-hotel-shell>h2{font-size:28px}.hb-hotel-title{font-size:28px}.hb-hotel-main .hb-desc{font-size:15px;line-height:1.62;max-height:190px}.hb-hotel-offer-card__value{font-size:30px}.hb-rate-card__head h4{font-size:25px}.hb-room-rate-row__price strong{font-size:25px}.hb-map-wrap iframe{height:260px}}

/* HB V2.8.3.0: room photos + grouped facilities polish */
.hb-rate-card__head--with-media{grid-template-columns:148px minmax(0,1fr) auto;align-items:center;gap:18px}
.hb-room-media{position:relative;width:148px;min-width:148px;border-radius:18px;overflow:hidden;background:#f3f5f7;box-shadow:0 10px 24px rgba(15,23,42,.08)}
.hb-room-media__main{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer;aspect-ratio:4/3;overflow:hidden}
.hb-room-media__main img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.hb-room-media__main:hover img{transform:scale(1.035)}
.hb-room-media__count{position:absolute;right:8px;bottom:8px;padding:5px 8px;border-radius:999px;background:rgba(15,23,42,.76);color:#fff;font-size:11px;font-weight:900;line-height:1}
.hb-room-media__hidden-thumb{display:none!important}
.hb-room-card__intro{min-width:0}
.hb-facility-catalog{grid-column:1/-1!important}
.hb-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.hb-section-head .hb-section-title{margin:0!important}
.hb-section-head p{margin:0;color:#64748b;font-size:14px;line-height:1.45}
.hb-facility-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hb-facility-category-card{border:1px solid rgba(15,23,42,.09);border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.035);padding:16px;min-height:150px}
.hb-facility-category-card h4{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:17px;line-height:1.2;letter-spacing:-.01em;color:#111827}
.hb-facility-category-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:#f0f7f3;font-size:16px;flex:0 0 auto}
.hb-facility-category-card ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.hb-facility-category-card li{position:relative;padding-left:16px;color:#475569;font-size:14px;line-height:1.35}
.hb-facility-category-card li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:999px;background:#1f7a43}
@media (max-width:1100px){.hb-rate-card__head--with-media{grid-template-columns:132px minmax(0,1fr) auto}.hb-room-media{width:132px;min-width:132px}.hb-facility-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.hb-rate-card__head--with-media{display:grid;grid-template-columns:1fr;gap:14px}.hb-room-media{width:100%;min-width:0;border-radius:20px}.hb-room-media__main{aspect-ratio:16/10}.hb-room-media__count{right:10px;bottom:10px;font-size:12px;padding:6px 9px}.hb-section-head{display:block}.hb-section-head p{margin-top:6px}.hb-facility-category-grid{grid-template-columns:1fr;gap:12px}.hb-facility-category-card{padding:15px;border-radius:18px;min-height:0}.hb-facility-category-card h4{font-size:18px}.hb-facility-category-card li{font-size:15px;line-height:1.45}}


/* HB 2.8.3.1 — room image accuracy + hotel extra full-width polish */
.hb-hotel-extra{grid-template-columns:1fr!important;gap:18px!important;}
.hb-hotel-extra-block,.hb-hotel-extra-block:nth-child(3){grid-column:1 / -1!important;}
.hb-facility-catalog .hb-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
.hb-facility-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.hb-room-media__main img{width:100%;height:100%;object-fit:cover;display:block;}
.hb-lightbox__stage img{max-width:min(1120px,88vw);max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.35);}
@media (max-width:1100px){.hb-facility-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.hb-facility-catalog .hb-section-head{display:block}.hb-facility-category-grid{grid-template-columns:1fr}.hb-lightbox__stage img{max-width:92vw;max-height:72vh}}

/* HB 2.8.3.1 — room image accuracy + hotel extra full-width polish */
.hb-hotel-extra{grid-template-columns:1fr!important;gap:18px!important;}
.hb-hotel-extra-block,.hb-hotel-extra-block:nth-child(3){grid-column:1 / -1!important;}
.hb-facility-catalog .hb-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
.hb-facility-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.hb-room-media__main img{width:100%;height:100%;object-fit:cover;display:block;}
.hb-lightbox__stage img{max-width:min(1120px,88vw);max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.35);}
@media (max-width:1100px){.hb-facility-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.hb-facility-catalog .hb-section-head{display:block}.hb-facility-category-grid{grid-template-columns:1fr}.hb-lightbox__stage img{max-width:92vw;max-height:72vh}}

/* HB V2.8.3.5: clean facility grouping + positive roomFacilities render */
.hb-room-facility-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.hb-room-facility-pill{display:inline-flex;align-items:center;min-height:28px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:800;line-height:1.2;border:1px solid rgba(15,23,42,.06)}
.hb-facility-catalog{width:100%}.hb-facility-category-card li{word-break:normal}.hb-facility-category-card li small{color:#64748b}
@media (max-width:760px){.hb-room-facility-pill{font-size:13px;min-height:32px}.hb-room-facility-pills{gap:8px;margin-top:12px}}

/* HB V2.8.5.2: result image overlay badges and star rating */
.hb-result-image-wrap{position:relative}
.hb-result-image-overlay{position:absolute;top:8px;left:8px;display:flex;flex-wrap:wrap;gap:4px;pointer-events:none;z-index:2}
.hb-star-rating{color:#ffc107;font-size:14px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.hb-image-badge{background:rgba(0,0,0,.6);color:#fff;padding:2px 6px;border-radius:4px;font-size:11px;line-height:1.2;white-space:nowrap}
.hb-image-badge+.hb-image-badge{margin-left:4px}

/*
 * HB V2.8.5.7 image ratio fix: unify result card images to a
 * 4:3 ratio across all breakpoints.  In previous releases we used
 * a mix of fixed heights and differing aspect ratios which could
 * leave grey bars below hotel photos.  These new rules remove
 * conflicting height constraints and force the wrapper to use a
 * consistent aspect ratio.  The child image then fills the wrapper
 * completely using `object-fit: cover`.
 */
.hb-result-image-wrap {
  aspect-ratio: 4/3 !important;
  min-height: 0 !important;
  height: auto !important;
  background: #f2f2f2;
  overflow: hidden;
}

.hb-result-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
