/* MAD SPORTS PRO — Mobile Form UX / non-destructive accessibility layer.
 * Does not change sport color variables or existing form functionality.
 */
@media (max-width: 900px) {
  /* iOS Safari zooms focused controls whose computed font-size is below 16px.
     Override older filter selectors using !important without changing page zoom settings. */
  html body input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
  html body textarea,
  html body select,
  html body [contenteditable="true"],
  html body .select2-search__field,
  html body .choices__input,
  html body .ts-control input,
  html body .msp-v2-command input,
  html body #mspV2CountrySearch,
  html body #mspV3CitySearch,
  html body #mspV3DistrictSearch {
    font-size: 16px !important;
    -webkit-text-size-adjust: 100%;
  }
  html body input[type="date"], html body input[type="time"], html body input[type="datetime-local"] {
    min-height: 44px;
  }
  html body input:not([type="hidden"]):focus,
  html body textarea:focus,
  html body select:focus {
    scroll-margin-top: calc(var(--msp-mobile-nav-offset, 92px) + 10px);
  }
  html body .msp-mobile-focus-target {
    scroll-margin-top: calc(var(--msp-mobile-nav-offset, 92px) + 10px) !important;
  }
  html body.msp-mobile-input-active [data-msp-mobile-hide-bar="true"],
  html body.msp-mobile-keyboard-open [data-msp-mobile-hide-bar="true"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  /* Always keep comparison tray away from narrow iOS keyboard. */
  html body.msp-mobile-input-active #mspCompareTray,
  html body.msp-mobile-keyboard-open #mspCompareTray { display: none !important; }

  /* Country / city / district filter dropdown: fixed to the VISIBLE viewport,
     not the layout viewport behind Safari's on-screen keyboard. */
  html body.msp-mobile-filter-popup #mspV2CountryPop:not([hidden]),
  html body.msp-mobile-filter-popup #mspV3CityPop:not([hidden]),
  html body.msp-mobile-filter-popup #mspV3DistrictPop:not([hidden]) {
    position: fixed !important;
    inset: auto auto auto auto !important;
    top: var(--msp-mobile-pop-top, 100px) !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    right: max(8px, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    width: auto !important;
    height: var(--msp-mobile-pop-height, 45dvh) !important;
    max-height: var(--msp-mobile-pop-height, 45dvh) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 9px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    padding: 12px 12px max(10px, env(safe-area-inset-bottom)) !important;
    background: #fff !important;
    border: 1px solid #dedede !important;
    border-radius: 5px !important;
    box-shadow: 0 15px 35px rgba(0,0,0,.20) !important;
    z-index: 2147483000 !important;
    transform: none !important;
  }
  html body.msp-mobile-filter-popup #mspV2CountrySearch,
  html body.msp-mobile-filter-popup #mspV3CitySearch,
  html body.msp-mobile-filter-popup #mspV3DistrictSearch {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    background: #fff !important;
    color: #17212c !important;
  }
  html body.msp-mobile-filter-popup .msp-v2-country-items,
  html body.msp-mobile-filter-popup .msp-v3-place-list {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  html body.msp-mobile-filter-popup .msp-v2-country-option,
  html body.msp-mobile-filter-popup .msp-v3-place-option,
  html body.msp-mobile-filter-popup .msp-v3-place-list button {
    min-height: 44px !important;
    font-size: 14px !important;
    touch-action: manipulation;
  }
  html body.msp-mobile-filter-popup .msp-v3-place-count { flex: 0 0 auto; }
}
@media (prefers-reduced-motion: reduce) {
  html body .msp-mobile-focus-target { scroll-behavior: auto; }
}

/* MAD SPORTS PRO — Discovery & results placement refinement. */
html body .msp-ux-upper-label,
html body .msp-ultimate-list .msp-results-search label,
html body .msp-ultimate-list .msp-results-sort label {
  text-transform: uppercase !important;
  font-weight: 800 !important;
  letter-spacing: .025em;
}
html body .msp-ux-location-actions {display:flex; align-items:stretch; gap:7px; min-width:0; width:100%;}
html body .msp-ux-location-actions > .msp-v2-mapbtn,
html body .msp-ux-location-actions > .msp-ux-show-results {flex:1 1 0; width:auto; min-width:0;}
html body .msp-ux-show-results {
  box-sizing:border-box; display:inline-flex; justify-content:center; align-items:center; gap:8px;
  min-height:44px; border:1px solid #e21836; border-radius:4px;
  background:#e21836; color:#fff; font-weight:800; font-size:13px; line-height:1.22; font-family:inherit;
  cursor:pointer; padding:10px 11px; text-align:center; transition:filter .16s ease, transform .16s ease;
}
html body .msp-ux-show-results:hover {filter:brightness(.92)}
html body .msp-ux-show-results:focus-visible {outline:2px solid #141414;outline-offset:2px}
html body .msp-ux-advanced-pair {display:flex; align-items:stretch;gap:8px; min-width:0; max-width:100%;}
html body .msp-ux-advanced-pair > .msp-ux-show-results {flex:1 1 0;}
html body .msp-ux-advanced-pair > #madToggleAdvanced {flex:1 1 0;}
html body .msp-ux-location-actions .msp-v2-mapbtn {height:auto !important;min-height:44px;white-space:normal;}
/* Close gaps without suppressing the page's actual hero and form content. */
html body #madFilterContainer {margin-top:10px !important;margin-bottom:10px !important;}
html body .msp-ultimate-list .msp-hotel-explorer {margin-top:12px !important;}
html body .mad-filter.msp-v2-ready .msp-v3-trip-panel {margin-top:12px !important;}
html body .mad-filter.msp-v2-ready .msp-v2-geo {margin-top:14px !important;}
html body .msp-v6-discovery-toggle {min-height:70px;}
@media(max-width:900px) {
  html body .msp-ux-header-covered {padding-top:var(--msp-ux-local-header-gap,0px) !important;}
  html body .msp-v6-discovery-toggle {min-height:65px !important;padding:12px 13px !important;}
  html body #madFilterContainer {margin-block:7px !important;}
  html body .msp-ux-location-actions {grid-column:1/-1;}
  html body .msp-ux-location-actions > .msp-v2-mapbtn,
  html body .msp-ux-location-actions > .msp-ux-show-results {min-height:47px !important; height:auto !important; font-size:12px !important;}
  html body .msp-ux-advanced-pair {flex-wrap:nowrap;gap:7px;min-width:0;width:100%;}
  html body .msp-ux-advanced-pair > .msp-ux-show-results,
  html body .msp-ux-advanced-pair > #madToggleAdvanced {flex:1 1 0 !important; min-width:0 !important; max-width:100%;}
  html body .msp-ux-advanced-pair > .msp-ux-show-results {font-size:12px !important;white-space:normal;}
  html body.msp-ux-advanced-sheet [data-msp-mobile-hide-bar="true"] {display:none !important;}
  /* Use the actual visible viewport, including the iOS browser chrome / keyboard. */
  html body .mad-container #madAdvancedPanel.msp-mobile-sheet-open {
    position:fixed !important;
    inset:var(--msp-mobile-pop-top, var(--msp-ux-header-bottom,84px)) 0 auto 0 !important;
    height:var(--msp-mobile-pop-height, calc(100dvh - 90px)) !important;
    max-height:var(--msp-mobile-pop-height, calc(100dvh - 90px)) !important;
    width:100% !important; border-radius:5px 5px 0 0 !important;
    overflow:hidden !important; box-sizing:border-box !important;
  }
  html body .mad-container #madAdvancedPanel.msp-mobile-sheet-open .mad-advanced-panel__inner,
  html body .mad-container #madAdvancedPanel.msp-mobile-sheet-open .mad-panel-layout {min-height:0 !important;max-width:100% !important;}
  html body .mad-container #madAdvancedPanel.msp-mobile-sheet-open .mad-panel-content-wrapper {min-height:0 !important;flex:1 1 auto !important;overflow-y:auto !important;overscroll-behavior:contain;}
  html body .mad-container #madAdvancedPanel.msp-mobile-sheet-open .mad-action-footer {position:sticky !important; bottom:0 !important; flex:0 0 auto !important;}
  html body .msp-v2-geo,.msp-v3-trip-grid {min-width:0 !important;max-width:100% !important;}
}
@media(max-width:450px){
  html body .msp-ux-location-actions > .msp-v2-mapbtn,
  html body .msp-ux-location-actions > .msp-ux-show-results {padding-inline:7px !important;font-size:11px !important;}
  html body .msp-ux-advanced-pair > .msp-ux-show-results {padding-inline:6px !important;}
}
@media(prefers-reduced-motion:reduce){html body .msp-ux-show-results {transition:none !important}}
/* Hotel name / airport captions: uppercase presentation, language-specific text stays intact. */
html body #madSearchForm label,
html body .mspj5-place-text small,
html body .mspj5-distance-label,
html body .mspj4-map-choice small {text-transform:uppercase !important;}
/* Suppress redundant white gaps between discovery form and hotel results. */
html body .mad-container:has(>.mad-filter.msp-v2-ready) {margin-bottom:0 !important;padding-bottom:10px !important;}
html body .msp-ultimate-list .msp-hotel-explorer {margin-bottom:20px !important;}

/* 2026-11-01 r3 | Verified listings: blue badge follows the hotel name (not the rating). */
.msp-ultimate-list .msp-hotel-card-grid .msp-hotel-name-wrap{
  display:block!important;min-width:0!important;max-width:100%!important;
}
.msp-ultimate-list .msp-hotel-card-grid .msp-hotel-name-wrap .h-title{
  display:block!important;width:auto!important;max-width:100%!important;
  overflow-wrap:break-word!important;word-break:normal!important;
}
.msp-ultimate-list .msp-hotel-card-grid .msp-hotel-verified-check{
  display:inline-block!important;vertical-align:baseline!important;
  margin-inline-start:3px!important;position:relative!important;
  z-index:6!important;line-height:1!important;white-space:nowrap!important;
}
.msp-ultimate-list .msp-hotel-card-grid .msp-hotel-verified-check i{
  color:#1877f2!important;font-size:.82em!important;line-height:1!important;
  vertical-align:baseline!important;filter:drop-shadow(0 1px 1px rgba(10,73,160,.15));
}
@media(max-width:900px){
  /* Use measured mobile top correction only for the actual overlaid intro card. */
  html body .msp-ux-first-content-safe{scroll-margin-top:calc(var(--msp-ux-header-bottom,84px) + 10px)!important;}
  html body.msp-ux-advanced-sheet [data-msp-mobile-hide-bar="true"]{display:none!important;}
  /* Place advanced sheet outside its former clipped stacking context, above backdrop. */
  html body > #madAdvancedPanel.msp-mobile-sheet-open{
    position:fixed!important;z-index:2147483500!important;display:flex!important;
    flex-direction:column!important;box-sizing:border-box!important;
    top:var(--msp-ux-sheet-top,12px)!important;left:0!important;right:0!important;bottom:auto!important;
    width:100%!important;max-width:100vw!important;
    height:var(--msp-ux-sheet-height,80dvh)!important;
    max-height:var(--msp-ux-sheet-height,80dvh)!important;
    overflow:hidden!important;transform:none!important;visibility:visible!important;
    opacity:1!important;margin:0!important;padding:0!important;
    border:1px solid #dce1e6!important;border-radius:6px 6px 0 0!important;
    background:#fff!important;color:#171717!important;box-shadow:0 15px 65px #0005!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open > .mad-advanced-panel__inner{
    min-height:0!important;flex:1 1 auto!important;display:flex!important;flex-direction:column!important;
    max-height:100%!important;overflow:hidden!important;background:white!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open .msp-smart-filter-sheet-header,
  html body > #madAdvancedPanel.msp-mobile-sheet-open .msp-smart-filter-nav,
  html body > #madAdvancedPanel.msp-mobile-sheet-open .msp-smart-filter-search-wrap{flex:0 0 auto!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-panel-content-wrapper{
    flex:1 1 auto!important;min-height:0!important;overflow-x:hidden!important;
    overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    padding:12px!important;background:white!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-panel-layout{
    display:block!important;min-height:0!important;width:100%!important;max-width:100%!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-sub-panel{
    width:100%!important;max-width:100%!important;min-width:0!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-action-footer{
    position:sticky!important;bottom:0!important;flex:0 0 auto!important;
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;width:100%!important;margin:0!important;
    padding:10px 12px max(12px,env(safe-area-inset-bottom))!important;
    background:white!important;border-top:1px solid #ddd!important;
  }
  html body > #madAdvancedPanel.msp-mobile-sheet-open input:not([type="checkbox"]):not([type="radio"]),
  html body > #madAdvancedPanel.msp-mobile-sheet-open select,
  html body > #madAdvancedPanel.msp-mobile-sheet-open textarea{font-size:16px!important;}
}

/* 2026-11-01 r4 | Fix iPhone advanced FILTER content after body-portal.
   The server-selected sport panel is already loaded; preserve the source data. */
@media(max-width:900px){
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-hotel-tab-active .mad-panel-layout > .mad-sport-panel{display:none!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-panel-layout > .mad-sub-panel:not(.mad-sport-panel){display:none!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-panel-layout > .mad-sport-panel:not(.d-none){display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-sport-panel.d-none{display:none!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-filter-group:not([hidden]){display:block!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open .mad-filter-group[hidden]{display:none!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-sport-panel:not(.d-none) .mad-pill-grid,
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-sport-panel:not(.d-none) .mad-card-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  html body > #madAdvancedPanel.msp-mobile-sheet-open.msp-ux-sport-tab-active .mad-sport-panel:not(.d-none) input[type="checkbox"]{pointer-events:auto!important;}
  /* The intro card is measured from the real sticky header with 9px clearance.
     Only apply this class when the JS detected actual overlap. */
  html body .msp-ux-first-content-safe{position:relative;z-index:1;}
  /* Keep both map/actions side by side with equal height and no word fragments. */
  html body #madFilterContainer .msp-ux-location-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important;gap:8px!important;}
  html body #madFilterContainer .msp-ux-location-actions > button{width:100%!important;min-height:48px!important;height:100%!important;padding:10px 8px!important;min-width:0!important;box-sizing:border-box!important;line-height:1.25!important;white-space:normal!important;text-align:center!important;}
  html body #madFilterContainer .msp-ux-location-actions .msp-v2-mapbtn{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;}
  html body #madFilterContainer .msp-ux-location-actions .msp-ux-show-results{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;background:#ee1430!important;border-color:#ee1430!important;}
  html body #madFilterContainer .msp-ux-location-actions button span{overflow-wrap:normal!important;hyphens:none!important;}
  html body #madFilterContainer .msp-ux-location-actions button i{flex:0 0 auto!important;font-size:16px!important;}
}
@media(min-width:901px){
  html body #madFilterContainer .msp-ux-location-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
  html body #madFilterContainer .msp-ux-location-actions > button{min-height:48px!important;height:100%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:10px 12px!important;box-sizing:border-box!important;min-width:0!important;white-space:normal!important;line-height:1.25!important;}
  html body #madFilterContainer .msp-ux-location-actions button i{flex:0 0 auto!important;}
}
/* Use the existing sports palette. No global green is injected into football,
   tennis, hockey, yoga, golf or other independently themed sport pages. */
html body #madFilterContainer .msp-ux-location-actions .msp-v2-mapbtn{border:1px solid var(--msp-sport-accent,#181818)!important;}
html body #madFilterContainer .msp-ux-location-actions .msp-ux-show-results{border-radius:4px!important;font-weight:850!important;}
html body #madFilterContainer .msp-ux-location-actions .msp-v2-mapbtn{border-radius:4px!important;font-weight:800!important;}

/* =======================================================================
 * 2026-11-01 R5 | Compact hotel result cards + real photo navigation
 * Only the public result cards and the existing discovery filter are styled.
 * Legacy hotel/sport detail templates, quote selection, sport palette and
 * server-side search/availability rules remain untouched.
 * ======================================================================= */
.msp-ultimate-list .msp-hotel-card-grid .hotel-card{
  min-height:210px!important;
}
.msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .card-visual,
.msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .card-img{
  min-height:210px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-body{
  padding:12px 15px!important;
  gap:0!important;
}
.msp-ultimate-list .msp-hotel-card-grid .msp-card-eyebrow{margin-bottom:4px!important;font-size:9.5px!important;line-height:1.25!important}
.msp-ultimate-list .msp-hotel-card-grid .h-head{margin:0 0 3px!important;gap:4px!important}
.msp-ultimate-list .msp-hotel-card-grid .h-title{font-size:clamp(18px,1.42vw,22px)!important;line-height:1.14!important}
.msp-ultimate-list .msp-hotel-card-grid .h-loc{margin:2px 0 5px!important;line-height:1.35!important;font-size:11px!important}
.msp-ultimate-list .msp-hotel-card-grid .msp-card-description{margin:0 0 6px!important;font-size:11.5px!important;line-height:1.4!important;-webkit-line-clamp:2!important}
.msp-ultimate-list .msp-hotel-card-grid .info-bar{margin:0 0 5px!important;padding:6px 0!important}
.msp-ultimate-list .msp-hotel-card-grid .amenity-row{margin:0 0 4px!important;gap:4px!important}
.msp-ultimate-list .msp-hotel-card-grid .am-tag{padding:4px 6px!important;font-size:10px!important}
.msp-ultimate-list .msp-hotel-card-grid .tech-scroll{margin-top:4px!important}
.msp-ultimate-list .msp-hotel-card-grid .tech-pill{padding:4px 6px!important}
.msp-ultimate-list .msp-hotel-card-grid .card-footer{
  justify-content:flex-start!important;gap:7px!important;padding:11px 12px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .h-stars{
  position:relative!important;top:auto!important;right:auto!important;
  display:flex!important;flex-direction:column!important;
  width:100%!important;flex:0 0 auto!important;
  align-items:flex-end!important;justify-content:flex-start!important;
  margin:0 0 auto!important;padding:0!important;gap:2px!important;
  text-align:right!important;min-height:0!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .h-stars>span{
  display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;
  width:auto!important;max-width:100%!important;margin:0!important;
  line-height:1.2!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .h-stars .msp-card-star-caption{
  display:block!important;width:100%!important;color:#626262!important;
  font-size:10px!important;line-height:1.3!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .hotel-highlight-banner{
  padding:4px 8px!important;margin:3px 0 0!important;
  border-radius:3px!important;font-size:10px!important;line-height:1.3!important;
  font-weight:800!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .price-area{margin:0!important;min-height:0!important}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .msp-price-date-message{
  min-height:36px!important;padding:6px 8px!important;
  margin:0!important;font-size:10.5px!important;line-height:1.25!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .action-btns{gap:5px!important;margin-top:auto!important}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .action-btns .btn{min-height:35px!important;padding:7px 9px!important;font-size:11px!important}
/* Restored card-level image arrows; do not interfere with save/compare hearts. */
.msp-ultimate-list .msp-hotel-card-grid .card-visual.msp-card-gallery{position:relative!important;isolation:isolate}
.msp-ultimate-list .msp-hotel-card-grid .card-visual.msp-card-gallery .msp-card-photo-nav{
  position:absolute!important;z-index:12!important;top:50%!important;
  transform:translateY(-50%)!important;
  display:flex!important;justify-content:center!important;align-items:center!important;
  width:35px!important;height:42px!important;min-height:0!important;
  padding:0!important;margin:0!important;
  background:rgba(14,19,25,.82)!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.62)!important;border-radius:3px!important;
  box-shadow:0 3px 12px rgba(0,0,0,.25)!important;
  font-size:17px!important;line-height:1!important;cursor:pointer!important;
  transition:background-color .18s ease,border-color .18s ease!important;
  touch-action:manipulation;
}
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-nav--prev{left:8px!important;right:auto!important}
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-nav--next{right:8px!important;left:auto!important}
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-nav:hover,
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-nav:focus-visible{
  background:#e30622!important;border-color:#fff!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-nav:focus-visible{
  outline:3px solid white!important;outline-offset:2px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .card-visual .msp-card-photo-counter{
  position:absolute!important;z-index:12!important;left:50%!important;bottom:8px!important;
  transform:translateX(-50%)!important;display:inline-flex!important;align-items:center!important;
  padding:4px 8px!important;background:rgba(11,17,22,.8)!important;color:white!important;
  font-size:10px!important;font-weight:850!important;letter-spacing:.025em!important;
  border-radius:3px!important;line-height:1.3!important;pointer-events:none!important;
}
/* The grid/cards retain the responsive legacy mode but never revert to
   the oversized 250px image from older CSS declarations. */
@media(min-width:981px){
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card{
    grid-template-columns:minmax(210px,28%) minmax(0,1fr) minmax(177px,19%)!important;
    min-height:210px!important;
  }
}
@media(min-width:681px) and (max-width:980px){
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card{min-height:205px!important}
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .card-visual,
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .card-img{min-height:205px!important}
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .card-footer .h-stars{flex:0 0 auto!important;width:auto!important;margin-right:8px!important}
}
@media(max-width:680px){
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card,
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card,
  .msp-ultimate-list .msp-hotel-card-grid.is-grid .hotel-card{
    grid-template-rows:200px auto auto auto!important;min-height:0!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .card-visual,
  .msp-ultimate-list .msp-hotel-card-grid .card-img,
  .msp-ultimate-list .msp-hotel-card-grid.is-grid .card-visual,
  .msp-ultimate-list .msp-hotel-card-grid.is-grid .card-img{height:200px!important;min-height:200px!important}
  .msp-ultimate-list .msp-hotel-card-grid .card-body{padding:12px!important}
  .msp-ultimate-list .msp-hotel-card-grid .card-footer{padding:10px 12px!important}
  .msp-ultimate-list .msp-hotel-card-grid .card-footer .h-stars{margin:0!important;align-items:flex-end!important}
  .msp-ultimate-list .msp-hotel-card-grid .card-footer .h-stars .msp-card-star-caption{width:auto!important;text-align:right!important}
  .msp-ultimate-list .msp-hotel-card-grid .card-footer .action-btns{margin-top:3px!important}
}
/* Discovery Engine location controls: 3 compact fields + one generous action
   group.  Keeps both labels fully readable without cutting Region's arrow. */
@media(min-width:1101px){
  html body #madFilterContainer .mad-filter.msp-v2-ready .msp-v2-geo{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(306px,1.5fr)!important;
    gap:9px!important;align-items:end!important;
  }
  html body #madFilterContainer .msp-v2-geo .msp-v2-field:first-child{grid-column:auto!important}
  html body #madFilterContainer .msp-v2-geo .msp-ux-location-actions{grid-column:auto!important;min-width:0!important;max-width:100%!important}
}
@media(min-width:901px) and (max-width:1100px){
  html body #madFilterContainer .mad-filter.msp-v2-ready .msp-v2-geo{
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:9px!important;align-items:end!important;
  }
  html body #madFilterContainer .msp-v2-geo .msp-v2-field:first-child{grid-column:auto!important}
  html body #madFilterContainer .msp-v2-geo .msp-ux-location-actions{grid-column:1/-1!important;max-width:460px!important;justify-self:end!important}
}
@media(max-width:900px){
  html body #madFilterContainer .mad-filter.msp-v2-ready .msp-v2-geo{gap:9px!important}
  html body #madFilterContainer .msp-v2-geo .msp-ux-location-actions{grid-column:1/-1!important;width:100%!important}
}
html body #madFilterContainer .msp-ux-location-actions{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:8px!important;align-self:end!important;min-width:0!important;
}
html body #madFilterContainer .msp-ux-location-actions > .msp-ux-show-results,
html body #madFilterContainer .msp-ux-location-actions > .msp-v2-mapbtn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:5px!important;width:100%!important;min-width:0!important;max-width:100%!important;
  height:48px!important;min-height:48px!important;max-height:48px!important;
  margin:0!important;padding:6px 7px!important;box-sizing:border-box!important;
  border-radius:5px!important;line-height:1.2!important;
  font-size:clamp(10px,.85vw,12px)!important;font-weight:800!important;white-space:normal!important;
  text-align:center!important;letter-spacing:0!important;
  overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;
}
html body #madFilterContainer .msp-ux-location-actions > .msp-ux-show-results{
  background:#eb1230!important;color:#fff!important;border-color:#eb1230!important;
}
html body #madFilterContainer .msp-ux-location-actions > .msp-v2-mapbtn{
  background:var(--msp-sport-accent,#161616)!important;
  color:white!important;border-color:var(--msp-sport-accent,#161616)!important;
}
html body #madFilterContainer .msp-ux-location-actions > button i{flex:0 0 14px!important;font-size:13px!important}
html body #madFilterContainer .msp-ux-location-actions > button span{display:inline-block!important;max-width:calc(100% - 19px)!important}
html body #madFilterContainer .msp-ux-location-actions > button:hover{filter:brightness(.88)!important}
html body #madFilterContainer .msp-ux-location-actions > button:focus-visible{outline:3px solid #111!important;outline-offset:2px!important}
@media(max-width:900px){
  html body #madFilterContainer .msp-ux-location-actions > button{font-size:12px!important}
}
@media(max-width:390px){
  html body #madFilterContainer .msp-ux-location-actions > button{font-size:11px!important;padding:6px 5px!important}
}
@media(prefers-reduced-motion:reduce){
  .msp-ultimate-list .msp-card-photo-nav{transition:none!important}
}

/* ======================================================================
 * MAD SPORTS PRO | IMAGE-ASPECT STABILITY FIX | 2026-11-01
 * A portrait photo must NEVER participate in the result-card grid row sizing.
 * The frame follows the card; the photo is painted absolutely inside it.
 * Target only result-list media (not hotel-detail galleries, filters or maps).
 * ====================================================================== */
.msp-ultimate-list .msp-hotel-card-grid .hotel-card > .card-visual.msp-card-gallery {
  position:relative!important;
  isolation:isolate;
  display:block!important;
  align-self:stretch!important;
  justify-self:stretch!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card > .card-visual.msp-card-gallery > img.card-img {
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:0!important;
}
/* Keep the established responsive 200px photo frame in narrow list/grid views.
 * The caption, compare button, photo arrows and counter remain positioned above
 * the image; no card interactions, images or descriptions are removed. */
@media(max-width:680px) {
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card > .card-visual.msp-card-gallery {
    height:200px!important;
    min-height:200px!important;
    max-height:200px!important;
  }
}


/* 2026-11-01 r8 | Unified shell width + tighter vertical rhythm between intro, filter and explorer. */
html body .main-container.msp-ultimate-list{
  --msp-shell-max:1370px;
  --msp-shell-gutter:36px;
  --msp-shell-width:min(var(--msp-shell-max), calc(100% - var(--msp-shell-gutter)));
}
html body .main-container.msp-ultimate-list > .container-fluid{
  width:var(--msp-shell-width)!important;
  max-width:var(--msp-shell-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
html body #madFilterContainer,
html body #madFilterContainer > .mad-container,
html body #madFilterContainer > .mad-container > .mad-filter,
html body .msp-ultimate-list .msp-hotel-explorer{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
html body #madFilterContainer{margin:10px 0 0!important;}
html body #madFilterContainer.mb-5{margin-bottom:0!important;}
html body .mad-container:has(>.mad-filter.msp-v2-ready){margin-bottom:0!important;padding-bottom:0!important;}
html body .mad-filter.msp-v2-ready .msp-v6-discovery-toggle{margin-bottom:12px!important;}
html body .mad-filter.msp-v2-ready .msp-v3-trip-panel{margin-top:10px!important;}
html body .mad-filter.msp-v2-ready .msp-v2-geo{margin-top:10px!important;}
html body .msp-ultimate-list .msp-hotel-explorer{margin-top:12px!important;margin-bottom:24px!important;}
@media(max-width:680px){
  html body .main-container.msp-ultimate-list{--msp-shell-gutter:20px;}
  html body .main-container.msp-ultimate-list > .container-fluid{width:var(--msp-shell-width)!important;}
  html body #madFilterContainer{margin-top:7px!important;}
  html body .mad-filter.msp-v2-ready .msp-v6-discovery-toggle{margin-bottom:10px!important;}
  html body .msp-ultimate-list .msp-hotel-explorer{margin-top:10px!important;margin-bottom:18px!important;}
}


/* MAD SPORTS PRO — precision alignment, 2026-11-01 r9.
   Preserve all 15 sport themes and the existing 15-language labels.
   The closed discovery UI must be a SINGLE real box, not an invisible 40px block.
   Keep the open form in document flow. No fixed heights or absolute positioning. */
html body .main-container.msp-ultimate-list{
  --msp-shell-left-correction: 7px;
  min-width:0!important;
  overflow-x:clip;
}
/* Exact common left AND right edges for the full discovery card and results. */
@media(min-width:901px){
  html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer),
  html body .main-container.msp-ultimate-list > .msp-hotel-explorer{
    box-sizing:border-box!important;
    width:calc(100% + var(--msp-shell-left-correction))!important;
    max-width:none!important;
    margin-left:calc(-1 * var(--msp-shell-left-correction))!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}
html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer){
  padding-bottom:0!important;
  margin-bottom:0!important;
  min-width:0!important;
}
/* Old V5 !important margin-bottom (on :has) was beating the earlier generic rule. */
html body .main-container.msp-ultimate-list > .container-fluid > #madFilterContainer:has(.mad-filter.msp-v2-ready){
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
html body .main-container.msp-ultimate-list #madFilterContainer .mad-container:has(>.mad-filter.msp-v2-ready),
html body .main-container.msp-ultimate-list #madFilterContainer .mad-filter.msp-v2-ready{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}
/* Strictly hide the collapsed forms/maps, including fragments appended by
   legacy JS after the disclosure was initially rendered. */
html body #madFilterContainer .mad-filter.msp-v2-ready.msp-v6-collapsed{
  display:block!important;
  overflow:clip!important;
  padding:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  border-width:0!important;
}
html body #madFilterContainer .mad-filter.msp-v2-ready.msp-v6-collapsed > :not(.msp-v6-discovery-toggle):not(script):not(style){
  display:none!important;
}
html body #madFilterContainer .mad-filter.msp-v2-ready.msp-v6-collapsed > .msp-v6-discovery-toggle{
  display:flex!important;
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  position:relative!important;
  min-width:0!important;
}
/* Open panel remains fully usable: reveal original children and never clip dropdowns. */
html body #madFilterContainer .mad-filter.msp-v2-ready:not(.msp-v6-collapsed){
  overflow:visible!important;
}
/* One explicit, compact rhythm across 3 sections, both closed and open. */
html body .main-container.msp-ultimate-list > .msp-hotel-explorer{
  margin-top:10px!important;
  margin-bottom:24px!important;
}
@media(max-width:900px){
  html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer){
    box-sizing:border-box!important;
    width:calc(100% - 20px)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  html body .main-container.msp-ultimate-list > .msp-hotel-explorer{
    width:calc(100% - 20px)!important;
    max-width:100%!important;
    margin:9px auto 18px!important;
  }
  html body #madFilterContainer .msp-v6-discovery-toggle{min-width:0!important;}
  html body #madFilterContainer .msp-v6-discovery-toggle__copy{min-width:0!important;}
}
/* The source of the colored background stays the sport palette. */


/* Final R10: override V5's doubled-ID :has() rule; it was 12px wider
   than its container and was winning the cascade despite R9. */
html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer .mad-filter.msp-v2-ready) > #madFilterContainer{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
}
html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer),
html body .main-container.msp-ultimate-list > .msp-hotel-explorer{
  box-sizing:border-box!important;
  width:calc(100% + 7px)!important;
  max-width:none!important;
  margin-left:-7px!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  min-width:0!important;
}
html body .main-container.msp-ultimate-list > .container-fluid:has(> #madFilterContainer){
  margin-bottom:0!important;
  padding-bottom:0!important;
}
html body .main-container.msp-ultimate-list > .msp-hotel-explorer{margin-top:10px!important;}
@media(max-width:900px){
  html body .main-container.msp-ultimate-list > .msp-hotel-explorer{margin-top:9px!important;}
}

/* V18 — review score stays above gallery controls and off the Compare button. */
.msp-ultimate-list .msp-hotel-card-grid .hotel-card .card-visual{position:relative!important;isolation:isolate;}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score{
  position:absolute!important;z-index:8!important;top:56px!important;right:8px!important;
  bottom:auto!important;left:auto!important;transform:none!important;
  max-width:calc(100% - 18px)!important;min-height:27px;display:inline-flex!important;
  gap:5px;align-items:center;justify-content:center;
  padding:5px 9px!important;margin:0!important;background:#fff!important;color:#15562f!important;
  border:1px solid #bfdfc8!important;border-left:3px solid #168746!important;border-radius:3px!important;
  box-shadow:0 2px 9px #0003!important;font-weight:850!important;font-size:12px!important;line-height:1.2!important;
  white-space:nowrap!important;
}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score.d-none{display:none!important;}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score i{color:#168746!important;}
/* The recorded starting-price guide is visible without dates but never marketed as a live confirmed offer. */
.msp-ultimate-list .msp-hotel-card-grid .card-footer .msp-v18-price-card{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:3px!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin:9px 0 7px!important;padding:9px 10px!important;min-height:0!important;
  background:#f7f8f8!important;border:1px solid #d8e0e1!important;border-left:4px solid #e01a33!important;
  box-sizing:border-box!important;
}
.msp-ultimate-list .msp-v18-price-eyebrow{font-size:9px!important;font-weight:800!important;letter-spacing:.025em;color:#3b4650!important;text-transform:none!important;}
.msp-ultimate-list .msp-v18-price-main{display:flex!important;align-items:baseline!important;flex-wrap:wrap!important;gap:6px!important;}
.msp-ultimate-list .msp-v18-price-from{color:#182432!important;font-size:12px!important;font-weight:800!important;}
.msp-ultimate-list .msp-v18-price-card .price-val{display:inline!important;margin:0!important;color:#131c29!important;font-weight:900!important;font-size:clamp(19px,1.6vw,25px)!important;line-height:1.1!important;white-space:nowrap!important;}
.msp-ultimate-list .msp-v18-price-meta{display:flex!important;gap:5px!important;flex-wrap:wrap!important;align-items:center!important;}
.msp-ultimate-list .msp-v18-price-meta :is(.price-unit,.flight-status){font-size:10px!important;line-height:1.3!important;color:#314151!important;margin:0!important;}
.msp-ultimate-list .msp-v18-price-meta .flight-status{padding-left:6px!important;border-left:1px solid #cbd2d6!important;}
.msp-ultimate-list .msp-v18-price-disclaimer{display:block!important;margin:1px 0 0!important;font-size:9px!important;line-height:1.3!important;color:#475467!important;}
.msp-ultimate-list .msp-v18-select-dates{min-height:30px!important;line-height:1.25!important;}
@media(max-width:680px){
 .msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score{top:54px!important;right:5px!important;font-size:11px!important;}
 .msp-ultimate-list .msp-hotel-card-grid .card-footer .msp-v18-price-card{margin:6px 0!important;}
}

/* Each sport uses its established palette; neutral hotel pages keep corporate red. */
.msp-ultimate-list .hotel-card{--msp-v18-sport:#d71431;}
.msp-ultimate-list .hotel-card.sportcat-1{--msp-v18-sport:#1b6039;}
.msp-ultimate-list .hotel-card.sportcat-2{--msp-v18-sport:#9a4c25;}
.msp-ultimate-list .hotel-card.sportcat-3{--msp-v18-sport:#0d658d;}
.msp-ultimate-list .hotel-card.sportcat-6{--msp-v18-sport:#95432d;}
.msp-ultimate-list .hotel-card.sportcat-7{--msp-v18-sport:#405171;}
.msp-ultimate-list .hotel-card.sportcat-8{--msp-v18-sport:#923442;}
.msp-ultimate-list .hotel-card.sportcat-10{--msp-v18-sport:#385f2d;}
.msp-ultimate-list .hotel-card.sportcat-13{--msp-v18-sport:#8e6c2d;}
.msp-ultimate-list .hotel-card.sportcat-15{--msp-v18-sport:#1e6743;}
.msp-ultimate-list .hotel-card.sportcat-16{--msp-v18-sport:#1a7076;}
.msp-ultimate-list .hotel-card.sportcat-17{--msp-v18-sport:#684c77;}
.msp-ultimate-list .hotel-card.sportcat-18{--msp-v18-sport:#2b6384;}
.msp-ultimate-list .hotel-card.sportcat-19{--msp-v18-sport:#526b30;}
.msp-ultimate-list .hotel-card.sportcat-20{--msp-v18-sport:#75303e;}
.msp-ultimate-list .hotel-card.sportcat-21{--msp-v18-sport:#205976;}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score{
 border-left-color:var(--msp-v18-sport,#d71431)!important;color:#162433!important;
}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v18-score i{color:var(--msp-v18-sport,#d71431)!important;}
.msp-ultimate-list .msp-hotel-card-grid .card-footer .msp-v18-price-card{border-left-color:var(--msp-v18-sport,#d71431)!important;}


/* MAD SPORTS PRO — V19: premium compact hotel cards.
   Stars and highlight occupy the top-right corner of the information column;
   the price rail is reserved for the real recorded starting-price guide and actions.
   Protect all 15 locales against card expansion from unusually long text. */
.msp-ultimate-list .msp-hotel-card-grid .hotel-card{min-width:0!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body{position:relative!important;min-width:0!important;overflow:hidden!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head{position:relative!important;min-width:0!important;margin-bottom:5px!important;padding-right:125px!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head>.msp-hotel-name-wrap{min-width:0!important;max-width:100%!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head .h-title{overflow-wrap:anywhere!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.msp-card-eyebrow{max-width:calc(100% - 125px)!important;overflow-wrap:anywhere!important;}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top{
  position:absolute!important;top:9px!important;right:10px!important;
  width:113px!important;max-width:113px!important;min-width:0!important;
  margin:0!important;padding:0!important;gap:1px!important;
  display:flex!important;flex-direction:column!important;align-items:flex-end!important;
  text-align:right!important;z-index:2!important;line-height:1.15!important;
  background:transparent!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top>span{
  max-width:100%!important;line-height:1.1!important;margin-top:0!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top .msp-card-star-caption{
  font-size:9px!important;line-height:1.15!important;max-width:112px!important;
  color:#53606e!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top .hotel-highlight-banner{
  max-width:112px!important;margin-top:2px!important;padding:3px 6px!important;
  display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  font-size:9px!important;line-height:1.15!important;color:#fff!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer{
  min-width:0!important;max-width:100%!important;overflow:hidden!important;
  justify-content:flex-start!important;gap:6px!important;
  padding:9px 10px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer>.msp-v18-price-card{
  margin:0!important;padding:7px 8px!important;gap:2px!important;
  min-height:0!important;max-width:100%!important;max-height:88px!important;
  overflow:hidden!important;box-sizing:border-box!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-eyebrow{
  font-size:9px!important;line-height:1.1!important;white-space:nowrap!important;
  max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-main{
  display:flex!important;flex-wrap:nowrap!important;align-items:baseline!important;
  gap:5px!important;max-width:100%!important;min-width:0!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-from{
  font-size:10px!important;line-height:1.2!important;white-space:nowrap!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-card .price-val{
  font-size:clamp(19px,1.5vw,24px)!important;line-height:1.1!important;white-space:nowrap!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-meta{
  max-width:100%!important;display:flex!important;flex-wrap:nowrap!important;
  white-space:nowrap!important;overflow:hidden!important;gap:5px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-meta>span{
  display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;
  font-size:9px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer .msp-v18-price-disclaimer{
  max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;
  text-overflow:ellipsis!important;font-size:9px!important;line-height:1.2!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer>.action-btns{
  margin-top:auto!important;min-width:0!important;gap:5px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer>.action-btns .btn{
  min-height:32px!important;padding:6px 7px!important;line-height:1.2!important;
}
/* Collapsed old pricing CTA must never occupy space, even when a legacy HTML cache is served. */
.msp-ultimate-list .msp-hotel-card-grid .msp-v18-select-dates,
.msp-ultimate-list .msp-hotel-card-grid .msp-date-prompt{display:none!important;}
@media(min-width:981px){
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card{
    min-height:208px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-visual{
    min-height:208px!important;
  }
}
@media(min-width:681px) and (max-width:980px){
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.h-head{
    padding-right:115px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body .msp-card-rating-top{
    width:104px!important;right:8px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.msp-card-eyebrow{
    max-width:calc(100% - 112px)!important;
  }
}
@media(max-width:680px){
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head{
    padding-right:116px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top{
    width:106px!important;right:8px!important;top:6px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.msp-card-eyebrow{
    max-width:calc(100% - 112px)!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer>.msp-v18-price-card{
    margin:0!important;max-height:88px!important;
  }
}

/* Secondary safeguard: a 15-language name must never stretch the gallery and list card.
   Long text is available on the hotel's detail page; list previews are bounded. */
@media(min-width:681px){
  .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body{
    max-height:208px!important;overflow:hidden!important;min-height:0!important;
  }
}
/* Mobile: put guide-price information and the existing action buttons on the
   same row, so a price never adds an entire second vertical block. */
@media(max-width:680px){
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer.msp-has-guide-price{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(115px,41%)!important;
    align-items:center!important;gap:7px!important;padding:8px!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer.msp-has-guide-price>.msp-v18-price-card{
    grid-column:1!important;max-height:87px!important;margin:0!important;min-width:0!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer.msp-has-guide-price>.action-btns{
    grid-column:2!important;display:flex!important;flex-direction:column!important;min-width:0!important;
    width:100%!important;gap:5px!important;margin:0!important;
  }
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-footer.msp-has-guide-price>.action-btns .btn{
    width:100%!important;min-width:0!important;font-size:10px!important;
    overflow-wrap:anywhere!important;
  }
}

/* V20 — compact explorer polish: raise stars/highlight, sport-colored pills,
   and move the review score to a premium bottom-right card. */
.msp-ultimate-list .hotel-card{
  --msp-v20-sport-soft:#fdecee;
  --msp-v20-sport-border:#f5c8d1;
}
.msp-ultimate-list .hotel-card.sportcat-1{--msp-v20-sport-soft:#e5f2ea;--msp-v20-sport-border:#b9d7c4;}
.msp-ultimate-list .hotel-card.sportcat-2{--msp-v20-sport-soft:#f6ece5;--msp-v20-sport-border:#dfc4b1;}
.msp-ultimate-list .hotel-card.sportcat-3{--msp-v20-sport-soft:#e4f2f8;--msp-v20-sport-border:#b7d7e7;}
.msp-ultimate-list .hotel-card.sportcat-6{--msp-v20-sport-soft:#f7ebe6;--msp-v20-sport-border:#e4c4b8;}
.msp-ultimate-list .hotel-card.sportcat-7{--msp-v20-sport-soft:#e9edf5;--msp-v20-sport-border:#c7d0df;}
.msp-ultimate-list .hotel-card.sportcat-8{--msp-v20-sport-soft:#f6e9ee;--msp-v20-sport-border:#e1c0cb;}
.msp-ultimate-list .hotel-card.sportcat-10{--msp-v20-sport-soft:#eaf3e5;--msp-v20-sport-border:#c5d8b8;}
.msp-ultimate-list .hotel-card.sportcat-13{--msp-v20-sport-soft:#f5f0e4;--msp-v20-sport-border:#ddd0a7;}
.msp-ultimate-list .hotel-card.sportcat-15{--msp-v20-sport-soft:#e7f3eb;--msp-v20-sport-border:#bdd8c8;}
.msp-ultimate-list .hotel-card.sportcat-16{--msp-v20-sport-soft:#e5f4f4;--msp-v20-sport-border:#b8d8db;}
.msp-ultimate-list .hotel-card.sportcat-17{--msp-v20-sport-soft:#efe9f3;--msp-v20-sport-border:#cfbfda;}
.msp-ultimate-list .hotel-card.sportcat-18{--msp-v20-sport-soft:#e8f1f7;--msp-v20-sport-border:#bed3e4;}
.msp-ultimate-list .hotel-card.sportcat-19{--msp-v20-sport-soft:#eef3e5;--msp-v20-sport-border:#cad7b7;}
.msp-ultimate-list .hotel-card.sportcat-20{--msp-v20-sport-soft:#f5e8ec;--msp-v20-sport-border:#ddc0c8;}
.msp-ultimate-list .hotel-card.sportcat-21{--msp-v20-sport-soft:#e7eff5;--msp-v20-sport-border:#bfd0df;}

.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head{
  margin-bottom:10px!important;
  padding-right:124px!important;
  min-height:52px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.msp-card-eyebrow{
  max-width:calc(100% - 128px)!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top{
  top:-2px!important;
  right:10px!important;
  width:106px!important;
  max-width:106px!important;
  gap:3px!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top .msp-card-star-caption{
  margin-top:2px!important;
  font-size:9px!important;
  line-height:1.1!important;
}
.msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top .hotel-highlight-banner{
  margin-top:4px!important;
  padding:4px 7px!important;
  border-radius:5px!important;
  font-size:9px!important;
  font-weight:800!important;
}
.msp-ultimate-list .msp-hotel-card-grid .tech-pill{
  color:var(--msp-v18-sport,#d71431)!important;
  background:var(--msp-v20-sport-soft,#fdecee)!important;
  border:1px solid var(--msp-v20-sport-border,#f5c8d1)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)!important;
  font-weight:800!important;
}

.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score{
  position:absolute!important;
  right:12px!important;
  bottom:12px!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  z-index:8!important;
  display:grid!important;
  grid-template-columns:auto auto!important;
  grid-template-areas:'value scale' 'label label'!important;
  align-items:start!important;
  gap:0 2px!important;
  min-width:78px!important;
  padding:8px 10px 7px!important;
  margin:0!important;
  background:rgba(255,255,255,.97)!important;
  color:#122033!important;
  border:1px solid rgba(18,32,51,.1)!important;
  border-bottom:3px solid var(--msp-v18-sport,#d71431)!important;
  border-radius:12px!important;
  box-shadow:0 10px 22px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score.d-none{display:none!important;}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-value{
  grid-area:value!important;
  font-size:28px!important;
  line-height:.95!important;
  font-weight:900!important;
  letter-spacing:-.05em!important;
  color:#101827!important;
}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-scale{
  grid-area:scale!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:900!important;
  margin-top:4px!important;
  color:var(--msp-v18-sport,#d71431)!important;
}
.msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-label{
  grid-area:label!important;
  margin-top:2px!important;
  font-size:9px!important;
  line-height:1.15!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  color:#556274!important;
}
@media(max-width:980px){
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head{padding-right:118px!important;min-height:50px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.msp-card-eyebrow{max-width:calc(100% - 120px)!important;}
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top{top:0!important;right:8px!important;width:102px!important;max-width:102px!important;}
}
@media(max-width:680px){
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.h-head{padding-right:112px!important;min-height:48px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.msp-card-eyebrow{max-width:calc(100% - 114px)!important;}
  .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body .msp-card-rating-top{top:0!important;right:6px!important;width:96px!important;max-width:96px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score{right:10px!important;bottom:10px!important;min-width:70px!important;padding:7px 9px 6px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-value{font-size:24px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-scale{font-size:11px!important;}
  .msp-ultimate-list .msp-hotel-card-grid .elite-score-overlay.msp-v20-score .msp-score-label{font-size:8px!important;}
}

/* MAD SPORTS PRO V21 — collision-free hotel cards; text-only score.
   The card remains compact. All native data, links, and galleries are unchanged. */
@media (min-width:981px) {
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card {
    grid-template-columns:minmax(210px,27%) minmax(0,1fr) minmax(174px,18%)!important;
    grid-template-rows:minmax(224px,auto) auto!important;
    min-height:224px!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-visual.msp-card-gallery,
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-visual.msp-card-gallery>img.card-img {
    height:224px!important;min-height:224px!important;max-height:224px!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-footer {
    min-height:224px!important;
  }
}
@media (min-width:681px) {
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body {
    box-sizing:border-box!important;
    height:224px!important;
    min-height:224px!important;
    max-height:224px!important;
    padding:10px 14px!important;
    gap:4px!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.msp-card-eyebrow {
    display:flex!important;
    flex:0 0 auto!important;
    min-height:12px!important;
    max-height:14px!important;
    line-height:1.15!important;
    margin:0!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.h-head {
    flex:0 0 auto!important;
    height:auto!important;
    min-height:40px!important;
    max-height:45px!important;
    padding-right:120px!important;
    margin:0!important;
    overflow:visible!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.h-loc {
    flex:0 0 auto!important;
    min-height:16px!important;
    max-height:19px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    flex-wrap:nowrap!important;
    text-overflow:ellipsis!important;
    line-height:1.25!important;
    font-size:10.5px!important;
    margin:0!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.msp-card-description {
    flex:0 1 auto!important;
    min-height:0!important;
    max-height:21px!important;
    -webkit-line-clamp:1!important;
    line-clamp:1!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
    margin:0!important;
    font-size:11px!important;
    line-height:1.5!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.info-bar {
    flex:0 0 auto!important;
    min-height:27px!important;
    max-height:29px!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    gap:9px!important;
    padding:3px 0!important;
    margin:0!important;
    overflow:hidden!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.info-bar>.info-item {
    display:inline-flex!important;
    align-items:center!important;
    min-width:0!important;
    flex:0 1 auto!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    font-size:10px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.info-bar>.info-item>span {
    display:inline-block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.amenity-row {
    flex:0 0 auto!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:4px!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    margin:0!important;
    overflow:hidden!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.amenity-row>.am-tag {
    display:inline-flex!important;
    align-items:center!important;
    flex:0 1 auto!important;
    min-width:0!important;
    height:22px!important;
    max-height:22px!important;
    padding:3px 5px!important;
    font-size:9.5px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.tech-scroll {
    flex:0 0 24px!important;
    min-height:24px!important;
    max-height:24px!important;
    width:100%!important;
    margin:auto 0 0!important;
    padding:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    align-items:center!important;
    gap:5px!important;
    isolation:isolate!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid:not(.is-grid) .hotel-card>.card-body>.tech-scroll>.tech-pill {
    flex:0 0 auto!important;
    max-height:22px!important;
    padding:4px 7px!important;
    font-size:9.5px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
}
/* On narrow displays, allow content to grow naturally instead of cropping translations. */
@media (max-width:680px) {
  html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body {
    height:auto!important;min-height:0!important;max-height:none!important;
    overflow:visible!important;gap:6px!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.amenity-row {
    margin:0!important;gap:4px!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-body>.tech-scroll {
    margin-top:5px!important;min-height:23px!important;
  }
}
/* Review score is pure typography, not a pill, badge, chip or card. */
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score {
  position:absolute!important;
  right:12px!important;
  bottom:11px!important;
  left:auto!important;top:auto!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  justify-content:flex-end!important;
  gap:2px!important;
  width:auto!important;min-width:0!important;max-width:130px!important;
  height:auto!important;min-height:0!important;max-height:none!important;
  padding:0!important;margin:0!important;
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  transform:none!important;opacity:1!important;
  color:var(--msp-v18-sport,#d71431)!important;
  filter:none!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 5px rgba(255,255,255,.95),0 0 12px rgba(255,255,255,.7)!important;
  pointer-events:none!important;
  z-index:15!important;
}
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score.d-none {
  display:none!important;
}
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score .msp-score-value {
  display:inline!important;
  color:inherit!important;
  font-weight:950!important;
  font-size:27px!important;
  line-height:1!important;
  letter-spacing:-.04em!important;
}
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score .msp-score-scale {
  display:inline!important;
  color:inherit!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1!important;
  margin:0!important;
}
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score .msp-score-label {
  display:none!important;
}
@media(max-width:680px) {
  html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score {
    right:10px!important;bottom:9px!important;
  }
  html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card>.card-visual .elite-score-overlay.msp-v20-score .msp-score-value {font-size:24px!important;}
}

/* MSP PRO V31 — hotel discovery cards do not display speculative/editorial
   descriptions. Retain descriptions exclusively on full hotel/sport pages. */
html body .msp-ultimate-list .msp-hotel-card-grid .hotel-card > .card-body > .msp-card-description {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
