/* Original desktop glyph preserved as a path; iOS cannot substitute emoji. */
.arrow-window svg{display:block;width:100%;height:100%}
.review-card .arrow-window{width:1em;height:1em;vertical-align:-.1em}
.mosaic-photo picture{display:block;width:100%;height:100%}
.listing-availability-jump{display:none}
#listing-booking{scroll-margin-top:110px}
.lightbox-stage{touch-action:pan-y pinch-zoom}
.lightbox-stage img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}

@media(max-width:780px){
 .property-grid,.catalog-section .property-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .featured .property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .property-card .photo-stats{font-size:13px;padding:9px 6px;transform:none;opacity:1}
 .property-card .photo-stats b{font-size:inherit}
 .featured .photo-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1px;font-size:8.5px;padding:8px 3px}
 .search-form>.date-field{grid-column:1;grid-row:2}
 .search-form>.search-field:nth-child(3){grid-column:2;grid-row:1}
 .search-form>.search-submit{grid-column:2;grid-row:2}
 /* Flatten these layout wrappers so both headings precede the actions. */
 .listing-document #main{display:flex;flex-direction:column}
 .listing-document #main>.seo-breadcrumb{order:1;padding-top:0;padding-bottom:24px}
 .listing-shell:has(.listing-mosaic){display:flex;flex-direction:column;padding-top:88px}
 .listing-shell .listing-title-row,.listing-shell .listing-columns,.listing-shell .listing-content{display:contents}
 .listing-shell .listing-mosaic{order:-5;width:100%;height:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:5px;border-radius:14px}
 .listing-shell .mosaic-photo-0{grid-column:span 2;grid-row:auto;aspect-ratio:1.45}
 .listing-shell .mosaic-photo-1,.listing-shell .mosaic-photo-2{aspect-ratio:1.3}
 .listing-shell .mosaic-photo-3,.listing-shell .mosaic-photo-4{display:none}
 .listing-shell .listing-title-row h1{order:-4;font-size:23px;line-height:1.25;margin:22px 0 10px}
 .listing-shell .listing-intro{order:-3;border:0;padding:0}
 .listing-shell .listing-intro h2{font-size:18px;line-height:1.35;margin-bottom:6px}
 .listing-shell .listing-stats{font-size:13px}
 .listing-shell .listing-actions{order:-2;margin:14px 0 12px;justify-content:flex-end;gap:24px}
 .listing-shell .listing-actions button{min-height:44px;padding:10px 0}
 .listing-shell .listing-availability-jump{position:fixed;z-index:80;display:flex;left:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100% - 32px);height:50px;min-height:50px;font-size:14px;margin:0;scroll-margin-bottom:calc(12px + env(safe-area-inset-bottom,0px));background:#9bdefb;box-shadow:0 4px 24px #123e5b2b,0 0 0 8px #ffffffd9;transition:none}
 .listing-shell .listing-availability-jump[data-dock-state="landed"]{visibility:hidden;pointer-events:none}
 .listing-booking [data-dock-receiving]{visibility:hidden}
 .listing-shell .listing-booking-column{margin-top:28px}
 .listing-shell .listing-booking{width:100%}
 .listing-shell .show-all-photos{right:12px;bottom:12px;font-size:12px;padding:8px 12px}
}

@media(max-width:640px){
 .catalog-section .card-info,.featured .card-info{padding:10px 11px 12px}
 .catalog-section .card-title,.featured .card-title{font-size:14px;line-height:1.3;font-weight:600;letter-spacing:-.02em;min-height:0}
 .catalog-section .card-info h3,.featured .card-info h3{margin:4px 0 0}
 .catalog-section .card-city,.featured .card-city{font-size:10px}
 .catalog-section .card-state,.featured .card-state{font-size:8px;letter-spacing:.07em}
 .catalog-section .card-rate,.featured .card-rate{font-size:12px;line-height:1.5;margin-top:7px}
 .catalog-section .card-rate strong,.featured .card-rate strong{font-size:12px}
 .featured .card-tags{min-height:0;margin-top:8px;gap:4px}
 .featured .card-tags span{font-size:8px;line-height:1.4}
 .owners-panel .owners-photo{height:auto;aspect-ratio:1.35;max-height:none}
 .owners-panel .owners-photo img{height:100%;object-position:center}
 .about .about-photo{width:calc(100% + 48px);height:auto;aspect-ratio:1.5;margin:-24px -24px 0}
 .about .about-photo img{width:100%;height:100%;object-position:center}
}

@media(max-width:360px){
 .catalog-section .card-title,.featured .card-title{font-size:13px}
 .catalog-section .card-info,.featured .card-info{padding:9px}
 .listing-shell .listing-title-row h1{font-size:21px}
 .listing-shell .listing-intro h2{font-size:17px}
}
