/* Shared stay browser; discovery remains a map until a visitor opens the list. */
.overview-dock{display:contents}
.browse-stays{display:none}
/* Keep the photo affordance away from the destination's fixed close corner. */
:root #destination-card.destination-card--anchored .destination-photos button>span{left:7px;right:auto}
:root #map :is(.atlas-pin--property,.atlas-pin--cluster)[data-compact-labels=true] .atlas-pin__label{display:none}
:root #map :is(.atlas-pin--property,.atlas-pin--cluster)[data-compact-labels=true]:not([inert]):not(.atlas-pin--pending):not(.atlas-pin--exiting):is(:hover,:focus-visible) .atlas-pin__label{display:block;pointer-events:auto}
.stays-dialog{width:min(660px,calc(100vw - 40px));max-height:min(780px,calc(100dvh - 48px));padding:24px;border:0;border-radius:18px;color:#fff;font:14px/1.45 Figtree,Arial,sans-serif;background:radial-gradient(ellipse at 50% 40%,#ffffff1c,transparent 80%),#ffffff10;backdrop-filter:blur(18px) brightness(.62);-webkit-backdrop-filter:blur(18px) brightness(.62);box-shadow:inset 0 1px 1px #ffffff66,inset 0 -1px 1px #ffffff25,0 18px 65px #0004;overflow:hidden}
.stays-dialog[open]{display:flex;flex-direction:column;gap:18px}.stays-dialog::backdrop{background:#0003}.stays-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;flex:none}.stays-heading p{margin:0 0 7px;font-size:10px;letter-spacing:1.6px;color:#ffffffbd}.stays-heading h2{font-size:27px;line-height:1.15;letter-spacing:-.7px;margin:0;font-weight:650}.stays-heading .round-button{width:44px;height:44px;flex:none;font-size:25px;color:#fff;background:#ffffff0d;border:0}.stays-location-label{display:grid;gap:7px;font-size:11px;color:#ffffffc9;flex:none}.stays-location-label select{width:100%;min-height:46px;font:inherit;font-size:15px;color:#fff;border:0;padding:10px 12px;border-radius:10px;background:#ffffff12}.stays-location-label option{color:#fff;background:#303030}.stays-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;display:grid;gap:10px;padding:2px 2px 8px}.stays-list::-webkit-scrollbar{display:none}.browse-stay{display:flex;gap:14px;align-items:center;width:100%;text-align:left;min-height:104px;padding:10px;background:#ffffff08;color:#fff;border:0;border-radius:12px;transition:background-color .18s}.browse-stay:hover{background:#ffffff16}.browse-stay>img{width:96px;height:88px;object-fit:cover;flex:none;border-radius:8px}.browse-stay-info{display:grid;gap:4px;min-width:0;flex:1;overflow-wrap:anywhere}.browse-stay-info small{font-size:9px;letter-spacing:.6px;color:#ffffffb8}.browse-stay-info strong{font-size:16px;line-height:1.25;font-weight:600}.browse-stay-info>span{font-size:11px;color:#ffffffc2}.browse-stay>.icon{width:18px;height:18px;flex:none;opacity:.7}.stays-dialog :focus-visible{outline:2px solid #fff;outline-offset:3px}

@media(max-width:760px){
 :root{--mobile-sheet-height:clamp(238px,37dvh,300px);--sheet-track-top:calc(132px + env(safe-area-inset-top))}
 /* Three distinct top targets keep the map style switch clear of the brand. */
 :root .site-header,:root body:not(.is-detail) .site-header,:root .is-detail .site-header{left:16px;top:calc(12px + env(safe-area-inset-top))}
 :root .site-header .wordmark{font-size:26px;letter-spacing:-1.5px}
 :root #workspace .map-topbar{top:calc(12px + env(safe-area-inset-top));right:68px;left:auto}
 :root #workspace .map-style-switch{position:relative;right:auto;left:auto;padding:2px;gap:2px;min-width:0;border-radius:12px}
 :root #workspace .map-style-switch button:not(.theme-toggle){min-width:44px;width:auto;min-height:44px;padding:8px 7px;font-size:10px;border-radius:8px}
 :root .account-login{top:calc(14px + env(safe-area-inset-top));right:12px;width:44px;height:44px;min-height:44px;border-radius:12px}
 /* The overview is one compact reading order, never overlapping floating cards. */
 :root #overview-dock{position:fixed;inset:auto 12px calc(18px + env(safe-area-inset-bottom));z-index:6;display:grid;gap:10px;padding:14px;border-radius:16px;color:#fff;background:radial-gradient(ellipse at 50% 40%,#ffffff14,transparent 80%),#ffffff07;backdrop-filter:blur(12px) brightness(.72);-webkit-backdrop-filter:blur(12px) brightness(.72);box-shadow:inset 0 1px 1px #ffffff66,inset 0 -1px 1px #ffffff26,0 12px 32px #0003;pointer-events:auto}
 :root #overview-dock[hidden]{display:none}
 :root #overview-dock #map-caption{position:static;inset:auto;max-width:none;width:auto;margin:0;padding:0;background:none;pointer-events:none}
 :root #overview-dock #map-caption :is(.map-caption-kicker,p,br,em){display:none}
 :root #overview-dock #map-caption h1{display:block;margin:0;color:#fff;font-size:24px;line-height:1.15;letter-spacing:-.65px;animation:none}
 :root #overview-dock #catalog-controls{position:static;inset:auto;display:flex;flex-wrap:wrap;max-width:none;width:100%;margin:0;padding:0;gap:8px}
 :root #overview-dock #catalog-controls[hidden]{display:none}
 :root #overview-dock #catalog-controls select{flex:1;width:100%;max-width:none;min-height:44px;min-width:0;font-size:15px;padding:10px 12px;border-radius:9px;background:#ffffff0b;box-shadow:inset 0 1px 1px #ffffff30;backdrop-filter:none;-webkit-backdrop-filter:none}
 :root #overview-dock #catalog-controls button{width:100%;min-height:44px}
 :root #overview-dock .browse-stays{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;width:100%;padding:10px 14px;border-radius:10px;background:#ffffffec;color:#242424;font-size:13px;font-weight:650}
 :root #overview-dock .browse-stays:disabled{opacity:.5;cursor:wait}
 :root #overview-dock .browse-stays>.icon{width:17px;height:17px}
 :root #overview-dock #overview-map-note{position:static;inset:auto;display:flex;align-items:center;gap:8px;order:4;width:auto;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;font-size:10px}
 :root #overview-dock #overview-map-note :is(strong,.note-arrow){display:none}
 :root #overview-dock #overview-map-note div>span{display:block;font-size:10px;line-height:1.3;color:#ffffffc7;animation:none}
 :root #overview-dock .pin-legend{width:6px;height:6px;box-shadow:none;margin:0;flex:none}
 :root .map-controls,:root body:not(.is-detail) .map-controls{top:calc(84px + env(safe-area-inset-top));right:12px;bottom:auto;gap:8px}
 :root .detail-mode .map-controls{top:calc(132px + env(safe-area-inset-top))}
 :root .map-controls button{width:44px;height:44px;min-height:44px}
 :root #workspace .category-filters{position:fixed;top:calc(76px + env(safe-area-inset-top));left:0;right:0;gap:7px;padding:0 12px 6px;min-height:50px;overflow-x:auto;overflow-y:hidden;scroll-padding:12px}
 :root #workspace .category-filters button{min-height:44px;padding:10px 13px;font-size:11px;flex:none;white-space:nowrap}
 /* The compact preview still identifies the stay before showing its photos. */
 :root #workspace.detail-mode #panel{border-radius:16px 16px 0 0;padding-top:14px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
 :root #workspace.detail-mode #panel:before{content:none}
 :root #panel .detail-topbar{min-height:44px;padding:0 12px;gap:4px}
 :root #panel .detail-topbar :is(.text-button,.sheet-toggle){min-height:44px;padding:8px 9px;font-size:11px}
 :root #panel .detail-topbar .detail-series{display:none}
 :root #panel #save-property{width:44px;height:44px;flex:none}
 :root #panel .property-heading{margin:4px 16px 10px}
 :root #panel .property-heading h1{font-size:24px;line-height:1.15;letter-spacing:-.6px;margin:0 0 6px}
 :root #panel .property-facts{gap:5px;flex-wrap:wrap}
 :root #panel .property-facts span{font-size:10px;padding:4px 6px;gap:4px}
 :root #panel .property-facts .icon{width:12px;height:12px}
 :root #panel .gallery{margin:0 12px;border-radius:10px}
 :root .mobile-sheet-track #panel .gallery-main{height:clamp(116px,18dvh,164px)}
 :root #panel .gallery-navigation button,:root #panel :is(.expand-photo,.gallery-autoplay){width:44px;height:44px;min-height:44px}
 :root #panel .photo-thumbs{margin:9px 12px 18px;gap:7px}
 :root #panel .photo-thumb{height:48px}
 :root #panel .property-description{margin:0 16px 18px;font-size:14px;line-height:1.65}
 :root #panel .amenities{margin-left:16px;margin-right:16px}
 :root #panel :is(.booking-button,.booking-note){margin-left:16px;margin-right:16px}
 :root #panel .local-guide{margin-left:16px;margin-right:16px}
 :root #panel .nearby-item{min-height:60px}
 /* Every visible pin is a 44px target; the original icon remains 32px. */
 :root #map .atlas-pin:not(.atlas-pin--cluster){width:44px;height:44px}
 :root #map .atlas-pin:not(.atlas-pin--cluster) .atlas-pin__dot{inset:auto;left:6px;top:6px;width:32px;height:32px}
 :root #map .atlas-pin__label{min-height:44px;padding:10px;font-size:11px}
 :root #map .atlas-pin:not(.atlas-pin--cluster) .atlas-pin__label{left:49px;right:auto}
 :root #map .atlas-pin:not(.atlas-pin--cluster)[data-label-side=left] .atlas-pin__label{left:auto;right:49px}
 :root #map .atlas-pin__label strong{font-size:11px;line-height:1.35}
 :root #map .atlas-pin:is([inert],.atlas-pin--pending,.atlas-pin--exiting) .atlas-pin__label,:root #map .atlas-pin:is([inert],.atlas-pin--pending,.atlas-pin--exiting) .atlas-pin__label *{pointer-events:none!important}
 .stays-dialog{position:fixed;inset:auto 0 0;width:100%;max-width:none;height:min(78dvh,720px);max-height:calc(100dvh - 70px - env(safe-area-inset-top));margin:0;padding:20px 16px calc(14px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
 .stays-dialog[open]{gap:15px}.stays-heading h2{font-size:24px}.stays-heading p{font-size:9px}.stays-location-label select{font-size:16px}.browse-stay{gap:11px;padding:9px;min-height:98px}.browse-stay>img{width:78px;height:80px}.browse-stay-info strong{font-size:15px}.browse-stay-info small{font-size:8px}.browse-stay-info>span{font-size:10px}.browse-stay>.icon{width:15px}
}
@media(max-width:760px) and (max-height:620px){:root #overview-dock{gap:8px;padding:13px}:root #overview-dock #map-caption h1{font-size:23px}:root #panel .property-heading h1{font-size:23px}.stays-dialog{height:84dvh}}
@media(max-width:760px) and (max-height:480px) and (orientation:landscape){:root{--mobile-sheet-height:196px;--sheet-track-top:calc(120px + env(safe-area-inset-top))}:root #overview-dock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px}:root #overview-dock #map-caption{grid-column:1/-1}:root #overview-dock #catalog-controls{grid-column:1}:root #overview-dock .browse-stays{grid-column:2;grid-row:2}:root #overview-dock #overview-map-note{grid-column:1/-1}:root #overview-dock #map-caption h1{font-size:21px}:root .mobile-sheet-track #panel .gallery-main{height:90px}.stays-dialog{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}}
@media(forced-colors:active){.stays-dialog{color:CanvasText;background:Canvas;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;border:1px solid CanvasText}.stays-location-label select,.browse-stay{background:Canvas;color:CanvasText;border:1px solid ButtonText}:root #overview-dock{background:Canvas;color:CanvasText;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid CanvasText}:root #overview-dock #map-caption h1,:root #overview-dock #overview-map-note div>span{color:CanvasText}}
/* Touch targets retain the same geographic centre on compact landscape screens. */
@media(pointer:coarse),(max-width:960px) and (max-height:480px) and (orientation:landscape){
 :root #map .atlas-pin:not(.atlas-pin--cluster){width:44px;height:44px}
 :root #map .atlas-pin:not(.atlas-pin--cluster) .atlas-pin__dot{inset:auto;left:6px;top:6px;width:32px;height:32px}
 :root #map .atlas-pin:not(.atlas-pin--cluster) .atlas-pin__label{left:49px;right:auto;min-height:44px}
 :root #map .atlas-pin:not(.atlas-pin--cluster)[data-label-side=left] .atlas-pin__label{left:auto;right:49px}
}
/* A short landscape phone gets a real side-by-side map and native reading pane. */
@media(max-width:760px) and (max-height:480px) and (orientation:landscape){
 :root body.is-detail:not(.has-destination) .mobile-sheet-track{inset:0 0 0 auto;width:44vw;height:100dvh;overflow-y:auto;overflow-x:hidden}
 :root body.is-detail:not(.has-destination) .mobile-sheet-spacer{height:0;min-height:0}
 :root body.is-detail:not(.has-destination) #workspace.detail-mode #panel{width:100%;height:auto;min-height:100dvh;max-height:none;padding-top:8px;border-radius:14px 0 0 14px}
 :root body.is-detail:not(.has-destination) #panel:before{display:none}
 :root body.is-detail:not(.has-destination) #panel .sheet-toggle{display:none}
 :root body.is-detail:not(.has-destination) #panel .detail-topbar{padding:0 10px;min-height:44px}
 :root body.is-detail:not(.has-destination) #panel .property-heading{margin:7px 12px 12px}
 :root body.is-detail:not(.has-destination) #panel .property-heading h1{font-size:22px;line-height:1.2}
 :root body.is-detail:not(.has-destination) #panel .gallery{margin:0 10px}
 :root body.is-detail:not(.has-destination) .mobile-sheet-track #panel .gallery-main{height:132px}
 :root body.is-detail:not(.has-destination) #workspace .map-topbar{top:12px;right:calc(44vw + 68px)}
 :root body.is-detail:not(.has-destination) .account-login{top:14px;right:calc(44vw + 12px)}
 :root body.is-detail:not(.has-destination) .site-header{left:12px;top:12px}
 :root body.is-detail:not(.has-destination) .site-header .wordmark{font-size:24px}
 :root body.is-detail:not(.has-destination) #workspace .category-filters{top:auto;bottom:10px;left:0;right:44vw;min-height:50px;padding:0 10px 6px;z-index:7}
 :root body.is-detail:not(.has-destination) .map-controls{top:84px;right:calc(44vw + 12px);bottom:auto}
 :root body.mobile-sheet-expanded:not(.has-destination) :is(.map-controls,.category-filters){visibility:visible;pointer-events:auto}
 :root body.mobile-sheet-expanded:not(.has-destination) .atlas-pin:not([inert]):not(.atlas-pin--pending):not(.atlas-pin--exiting){visibility:visible;pointer-events:auto}
 :root body.is-detail:not(.has-destination) .maplibregl-ctrl-bottom-right{top:auto!important;bottom:2px!important;left:8px;right:calc(44vw + 8px);max-width:calc(56vw - 16px)}
 :root body.is-detail:not(.has-destination) .maplibregl-ctrl-attrib{font-size:6px!important;line-height:1.3;white-space:normal}
}
/* When side tags cannot fit, a short name may sit above its geographic pin. */
:root #map .atlas-pin[data-label-side=top] .atlas-pin__label{left:50%!important;right:auto!important;top:auto!important;bottom:calc(50% + 27px);transform:translateX(-50%)!important}

/* The real grab handle controls the native sheet track, with a full touch target. */
.sheet-grab{display:none}
@media(max-width:760px){
 :root #panel .sheet-grab{display:flex;position:absolute;z-index:5;top:0;left:50%;transform:translateX(-50%);align-items:flex-start;justify-content:center;width:76px;height:44px;padding:8px 0 0;border:0;border-radius:12px;background:none;color:#fff;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
 :root #panel .sheet-grab>span{display:block;width:40px;height:5px;border-radius:5px;background:#ffffff9c;transition:width .18s,background-color .18s}
 :root #panel .sheet-grab:is(:hover,:focus-visible)>span{width:46px;background:#ffffffe6}
 :root #panel .sheet-grab:focus-visible{outline:2px solid #fff;outline-offset:-4px}
 :root #panel .detail-topbar{justify-content:space-between}
 .mobile-sheet-track.is-dragging{scroll-behavior:auto;scroll-snap-type:none}
 :root .mobile-sheet-track.is-dragging #panel .sheet-grab{cursor:grabbing}
 :root .mobile-sheet-track.is-dragging #panel .sheet-grab>span{width:46px;background:#fff}
}
@media(max-width:760px) and (max-height:480px) and (orientation:landscape){:root #panel .sheet-grab{display:none}}
@media(prefers-reduced-motion:reduce){:root #panel .sheet-grab>span{transition:none}}

@media(max-width:760px){
 :root body.mobile-sheet-map #workspace.detail-mode #panel{visibility:hidden;pointer-events:none}
 :root body.mobile-sheet-map #panel .sheet-grab{visibility:visible;pointer-events:auto;position:absolute;top:0;bottom:auto;background:#ffffff12;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:18px 18px 0 0}
}
@media(max-width:760px) and (max-height:480px) and (orientation:landscape){
 :root body.mobile-sheet-map #workspace.detail-mode #panel{visibility:visible;pointer-events:auto}
 :root #overview-dock #catalog-controls{grid-column:1;grid-row:1}
 :root #overview-dock .browse-stays{grid-column:2;grid-row:1}
}
@media(max-width:760px){
 :root body.is-detail.mobile-sheet-map:not(.has-destination) .maplibregl-ctrl-bottom-right{top:auto!important;bottom:var(--sheet-peek-height)!important}
}
