/* Compact listing presentation is shared; search-only page layout stays route scoped. */
body.search-results-route { background:#f7f9fc; color:#071d49; }
body.search-results-route * { letter-spacing:0; }
body.search-results-route main > .hero,
body.search-results-route main > .quick-cities,
body.search-results-route main > .guest-strip,
body.search-results-route main > .destination-showcase,
body.search-results-route .search-promises { display:none; }
body.search-results-route:not(.property-page-active) main > section:not(.booking-panel):not(.hotel-results) { display:none; }
body.search-results-route #stays-title { text-transform:none; }
body.search-results-route .site-header { background:#fff; border-bottom:1px solid #e4e9f1; box-shadow:none; }
body.search-results-route .booking-panel { position:relative; margin:24px auto; width:calc(100% - 48px); max-width:1320px; border:1px solid #e4e9f1; border-radius:16px; background:white; box-shadow:0 5px 22px #071d4908; }
body.search-results-route #bookingForm { display:grid; grid-template-columns:minmax(180px,1.6fr) repeat(2,minmax(130px,1fr)) minmax(150px,1fr) auto; gap:0; padding:12px; }
body.search-results-route #bookingForm .field { min-width:0; padding:12px 16px; border:0; border-right:1px solid #e4e9f1; border-radius:0; }
body.search-results-route #bookingForm input { min-width:0; width:100%; background:transparent; }
body.search-results-route .search-button { background:#d69a28; color:#071d49; border-radius:10px; margin:4px 0 4px 12px; padding:14px 22px; font-weight:700; }
body.compact-catalog .hotel-results { max-width:1320px; width:calc(100% - 48px); margin:28px auto 64px; padding:0; }
body.search-results-route .results-head { align-items:center; gap:24px; margin-bottom:24px; }
body.search-results-route #stays-title { font-size:26px; line-height:1.3; font-weight:750; color:#071d49; margin:0 0 8px; }
body.search-results-route .results-head > div > span { color:#617086; font-size:14px; }
body.compact-catalog .sort-box { flex-wrap:wrap; gap:10px; }
body.compact-catalog .sort-box select, body.compact-catalog .map-view-button { border:1px solid #dbe3ee; border-radius:8px; background:#fff; padding:10px 12px; color:#071d49; }
body.compact-catalog .results-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; align-items:start; }
body.compact-catalog .filter-panel { width:auto; min-width:0; background:transparent; border:0; box-shadow:none; padding:0 16px 0 0; }
body.compact-catalog .hotel-list, body.compact-catalog .hotel-page-window { display:grid; gap:20px; min-width:0; }
body.compact-catalog .hotel-card { display:grid; grid-template-columns:minmax(210px,30%) minmax(0,1fr) minmax(160px,20%); gap:16px; padding:16px; background:#fff; border:1px solid #e3e9f1; border-radius:16px; box-shadow:0 5px 18px #071d4906; overflow:hidden; align-items:stretch; }
body.compact-catalog .hotel-image-wrap { min-width:0; min-height:0; height:auto; margin:0; align-self:start; display:flex; flex-direction:column; gap:6px; overflow:hidden; border-radius:10px; background:#eef2f6; }
body.compact-catalog .hotel-image-wrap > img { display:block; width:100%; height:auto !important; aspect-ratio:16/9; object-fit:cover; min-height:0 !important; border-radius:10px; flex:none; }
body.compact-catalog .save-stay-button { display:none; }
body.compact-catalog .search-photo-strip { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; background:white; }
body.compact-catalog .search-photo-strip img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:4px; }
body.compact-catalog .hotel-image-wrap .search-photo-strip img { height:auto !important; min-height:0 !important; aspect-ratio:16/10; }
body.compact-catalog .search-photo-strip button { position:absolute; right:4px; bottom:4px; border:0; border-radius:4px; padding:4px 7px; font-size:11px; background:#071d49e8; color:white; }
body.compact-catalog .hotel-info { padding:4px 0; min-width:0; }
body.compact-catalog .hotel-info h3 { font-size:19px; line-height:1.3; color:#071d49; margin:0 0 6px; overflow-wrap:anywhere; }
body.compact-catalog .hotel-info > p { font-size:12px; line-height:1.5; color:#64748b; margin:0 0 7px; }
body.compact-catalog .hotel-info .search-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
body.compact-catalog .listing-tags, body.compact-catalog .listing-amenities { display:flex; flex-wrap:wrap; gap:5px; margin:7px 0; }
body.compact-catalog .listing-tags span, body.compact-catalog .listing-amenities span { font-size:11px; line-height:1.5; padding:4px 7px; border-radius:6px; background:#f2f5f9; color:#43556e; border:0; white-space:normal; }
body.compact-catalog .listing-tags span:first-child { background:#fff6e4; color:#77500f; }
body.compact-catalog .listing-actions { margin-top:auto; padding-top:8px; display:flex; justify-content:flex-start; align-items:center; gap:16px; }
body.compact-catalog .listing-detail-link, body.compact-catalog .listing-share-link { color:#071d49; font-size:13px; }
body.compact-catalog .listing-price { display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; text-align:right; padding:12px 0 8px 16px; border-left:1px solid #e4e9f1; min-width:0; gap:8px; }
body.compact-catalog .listing-price strong { font-size:25px; line-height:1.25; overflow-wrap:anywhere; color:#071d49; }
body.compact-catalog .listing-price small, body.compact-catalog .listing-price > span { font-size:12px; line-height:1.6; color:#617086; }
body.compact-catalog .listing-price > button { width:100%; min-height:44px; padding:12px; margin-top:12px; border-radius:9px; background:#d69a28; color:#071d49; font-size:14px; font-weight:750; border:0; white-space:normal; }
body.search-results-route button:focus-visible, body.search-results-route a:focus-visible { outline:3px solid #a97112; outline-offset:3px; }
body.compact-catalog:not(.internal-admin-route) .hotel-results .hotel-card { border-radius:16px; padding:16px; gap:16px; }
body.compact-catalog:not(.internal-admin-route) .hotel-results .hotel-info { display:flex; flex-direction:column; align-items:flex-start; gap:0; padding:0 !important; min-width:0; }
body.compact-catalog .compact-new-badge { display:inline-block; background:#fff6e4; color:#77500f; border-radius:4px; padding:3px 6px; font-size:10px; line-height:1.3; margin-bottom:6px; }
body.compact-catalog .hotel-info .compact-location { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:1; overflow:hidden; }
body.compact-catalog .card-icon { width:14px !important; height:14px !important; min-height:0 !important; max-width:none; display:inline-block; flex:none; vertical-align:-2px; margin-right:4px; border-radius:0; object-fit:contain; }
body.compact-catalog .listing-amenities span { display:inline-flex; align-items:center; }
body.compact-catalog .listing-tags span { text-transform:none; }
body.compact-catalog .listing-share-link { display:inline-flex; align-items:center; }
body.compact-catalog .listing-price .listing-rating-row { margin:0 0 auto; padding:0; min-height:0; background:none; display:flex; justify-content:flex-end; align-items:center; gap:6px; }
body.compact-catalog .listing-price .listing-rating-row strong { font-size:13px; background:#071d49; color:#fff; padding:5px; border-radius:4px; }
body.compact-catalog .listing-price .listing-rating-row span { font-size:11px; color:#64748b; }
body.compact-catalog .hotel-info > * { min-width:0; max-width:100%; box-sizing:border-box; }
body.compact-catalog:not(.internal-admin-route) .hotel-results .listing-amenities span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; box-shadow:none; }
body.compact-catalog:not(.internal-admin-route) .hotel-results .listing-price { background:white; }
body.compact-catalog .filter-panel > *, body.compact-catalog .filter-panel input { max-width:100%; min-width:0; box-sizing:border-box; }
body.compact-catalog .filter-panel .applied-filters { flex-wrap:wrap; gap:8px; }
body.compact-catalog .filter-panel .filter-group { width:100%; padding:12px; }
@media(max-width:1100px) {
 body.compact-catalog .filter-panel { display:block; }
 body.search-results-route #bookingForm { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
 body.compact-catalog .hotel-results { width:calc(100% - 48px) !important; margin-left:auto; margin-right:auto; }
 body.compact-catalog .results-layout { display:grid !important; }
 body.compact-catalog .hotel-page-window .hotel-card { grid-template-columns:180px minmax(0,1fr) !important; }
 body.compact-catalog .hotel-card .hotel-image-wrap { height:auto !important; margin:0 !important; }
 body.compact-catalog .hotel-card .hotel-image-wrap > img { flex:none; }
 body.compact-catalog .results-layout { grid-template-columns:180px minmax(0,1fr); gap:16px; }
 body.compact-catalog .hotel-card { grid-template-columns:180px minmax(0,1fr); gap:16px; }
 body.compact-catalog .listing-price { grid-column:1/-1; flex-direction:row; align-items:center; flex-wrap:wrap; justify-content:flex-start; border-left:0; border-top:1px solid #e4e9f1; padding:14px 0 0; text-align:left; }
 body.compact-catalog .listing-price > button { width:auto; min-width:150px; margin:0 0 0 auto; }
 body.search-results-route #bookingForm { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 body.search-results-route .search-button { margin:0; grid-column:1/-1; }
 body.search-results-route .results-head { flex-wrap:wrap; }
}
@media(max-width:700px) {
 body.compact-catalog .hotel-page-window .hotel-card { grid-template-columns:minmax(0,1fr) !important; }
 /* Override legacy mobile !important rules only on the results route. */
 body.search-results-route #bookingForm { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
 body.compact-catalog .hotel-results { width:calc(100% - 24px) !important; margin-left:auto; margin-right:auto; }
 body.compact-catalog .hotel-card .hotel-image-wrap { height:auto !important; margin:0 !important; }
 body.compact-catalog .filter-panel { display:block; }
 body.search-results-route .booking-panel, body.compact-catalog .hotel-results { width:calc(100% - 24px); margin-top:16px; }
 body.compact-catalog .results-layout { grid-template-columns:minmax(0,1fr); }
 body.compact-catalog .filter-panel { padding:12px; max-height:220px; overflow:auto; border:1px solid #e4e9f1; border-radius:8px; }
 body.compact-catalog .hotel-card { grid-template-columns:minmax(0,1fr); padding:12px; gap:12px; }
 body.compact-catalog .hotel-image-wrap > img { aspect-ratio:16/10; }
 body.compact-catalog .search-photo-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
 body.compact-catalog .search-photo-strip img { aspect-ratio:2/1; }
 body.compact-catalog .hotel-image-wrap .search-photo-strip img { aspect-ratio:2/1; }
 body.compact-catalog .hotel-info h3 { font-size:20px; }
 body.compact-catalog .listing-price { grid-column:auto; }
 body.compact-catalog .listing-price > button { width:100%; margin:8px 0 0; }
 body.search-results-route #stays-title { font-size:23px; }
 body.search-results-route #bookingForm .field { padding:10px 6px; }
 body.search-results-route #bookingForm .location-field, body.search-results-route #bookingForm .guest-field { grid-column:1/-1; border-right:0; }
}
