/* Layout contract from the supplied LiteAPI desktop/tablet/phone screenshots.
   First layer owns geometry across retained legacy component styles. */
@layer discovery-map {
  body[data-discovery-map] .discovery-map-marker .hm-body { min-width: 0 !important; width: auto !important; min-height: 0 !important; height: 30px !important; padding: 6px 10px !important; border: 1px solid #fff !important; border-radius: 8px !important; background: var(--q-blue) !important; color: #fff !important; font-size: 12px !important; line-height: 16px !important; white-space: nowrap !important; }
  body[data-discovery-map] .discovery-map-marker.is-place .hm-body { display: grid !important; place-items: center !important; width: 36px !important; height: 36px !important; padding: 0 !important; border: 1px solid #fff !important; border-radius: 50% !important; background: #168a5b !important; color: #fff !important; }
  body[data-discovery-map] .discovery-map-marker.is-place.is-active .hm-body { border: 3px solid #46b978 !important; background: #0b0d12 !important; color: #fff !important; }
  body[data-discovery-map] .discovery-map-marker.is-place .hm-body img { width: 20px; height: 20px; object-fit: contain; }
  body[data-discovery-map] .discovery-map-marker .hm-tip { display: none !important; }
  body[data-discovery-map] .discovery-map-marker.is-active .hm-body { background: #08090b !important; color: #fff !important; border: 2px solid var(--q-blue) !important; padding: 5px 9px !important; }
  body[data-discovery-map] .discovery-map-cluster { width: 36px !important; height: 36px !important; min-width: 36px !important; min-height: 36px !important; padding: 0 !important; border: 2px solid #fff !important; border-radius: 50% !important; background: var(--q-blue) !important; color: #fff !important; line-height: 1 !important; }
  body[data-discovery-map] .discovery-map-cluster.is-place { border: 1px solid #fff !important; background: #168a5b !important; color: #fff !important; }
  body[data-discovery-map] .discovery-map-cluster.is-place:is(:hover,:focus-visible) { border: 3px solid #46b978 !important; background: #0b0d12 !important; }
  /* The app's map preview: one horizontal card, with its photo on the left. */
  body[data-discovery-map] .map-preview-card {
    --preview-surface: var(--q-surface);
    --preview-ink: var(--q-ink);
    --preview-muted: var(--q-muted);
    --preview-line: var(--q-line);
    position: relative !important;
    display: grid !important;
    grid-template-columns: 28.5% minmax(0,1fr) !important;
    grid-template-rows: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 176px;
    padding: 0 !important;
    overflow: visible !important;
    border: 1px solid var(--preview-line) !important;
    border-radius: 14px !important;
    background: var(--preview-surface) !important;
    color: var(--preview-ink) !important;
    box-shadow: 0 8px 28px #0003 !important;
    font-family: 'DM Sans',sans-serif;
}
/* The shared shell is the only owner of map-page geometry and overlays. */
@layer shell {
  body[data-discovery-map] { --surface: var(--q-surface); --text: var(--q-ink); --muted: var(--q-muted); --line: var(--q-line); --stays-signal: var(--q-blue); }
  body[data-discovery-map] .site-shell { display: flex !important; flex-direction: column !important; overflow: hidden !important; }
  body[data-discovery-map] .page-wrap.full-width { flex: 1 1 auto !important; height: auto !important; overflow: hidden !important; }
  body[data-discovery-map] .half-map-shell { display: flex !important; flex-direction: column !important; }
  body[data-discovery-map] .half-map-content { flex: 1 1 auto !important; height: auto !important; overflow: hidden !important; }
  body[data-discovery-map] .half-map-inner { gap: 0 !important; }
  body[data-discovery-map] .template-map { position: relative !important; min-width: 0 !important; border: 0 !important; }
  body[data-discovery-map] .template-map-panel { inset: 0 !important; }
  body[data-discovery-map] :is(.template-results-head,h1,.discovery-map-dialog h3) { color: var(--q-ink) !important; }
  body[data-discovery-map] .nav-global { background: #08090b !important; border-color: #292c33 !important; color: #f0f1f5 !important; }
  body[data-discovery-map] .nav-global > .container { max-width: none !important; }
  body[data-discovery-map] :is(.stays-prefs-trigger,.theme-toggle,.account-link) { min-height: 44px !important; height: 44px !important; }
  body[data-discovery-map] :is(.stays-prefs-trigger,.theme-toggle) { min-width: 44px !important; width: 44px !important; }
  body[data-discovery-map] :is(.theme-toggle,.stays-prefs-trigger) svg { width: 20px; height: 20px; stroke: currentColor; }
  body[data-discovery-map] .map-expand-control { position: absolute !important; z-index: 40 !important; top: 114px !important; right: 12px !important; width: 44px !important; height: 44px !important; border: 1px solid var(--q-line) !important; border-radius: 8px !important; padding: 10px !important; background: var(--q-surface) !important; color: var(--q-ink) !important; }
  body[data-discovery-map] .map-expand-control svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.6; }
  body[data-discovery-map] .map-3d-toggle { position: absolute !important; z-index: 40 !important; top: 166px !important; right: 12px !important; width: 44px !important; min-height: 44px !important; padding: 0 !important; border: 1px solid var(--q-line) !important; border-radius: 8px !important; background: var(--q-surface) !important; color: var(--q-ink) !important; font: 700 13px/1 'DM Sans',sans-serif !important; cursor: pointer; }
  body[data-discovery-map] .map-3d-toggle[aria-pressed="true"] { border-color: var(--q-blue) !important; background: var(--q-blue) !important; color: #fff !important; }
  body[data-discovery-map] .map-3d-toggle:focus-visible { outline: 3px solid var(--q-blue) !important; outline-offset: 3px !important; }
  body[data-discovery-map] .map-3d-toggle[hidden] { display: none !important; }
  body[data-discovery-map] .map-layer-rail { position: absolute; z-index: 42; top: 218px; right: 12px; display: grid; gap: 8px; }
  body[data-discovery-map] .map-layer-option { display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--q-line); border-radius: 8px; background: var(--q-surface); color: var(--q-ink); cursor: pointer; }
  body[data-discovery-map] .map-layer-option svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  body[data-discovery-map] .map-layer-option[data-map-layer="hotels"][aria-pressed="true"] { background: #3156cb; border-color: #3156cb; color: #fff; }
  body[data-discovery-map] .map-layer-option[data-map-layer="places"][aria-pressed="true"] { background: #24553e; border-color: #24553e; color: #fff; }
  body[data-discovery-map] .map-layer-option[data-map-layer="networks"][aria-pressed="true"] { background: var(--q-blue); border-color: var(--q-blue); color: #fff; }
  body[data-discovery-map] .map-layer-option:focus-visible { outline: 3px solid var(--q-blue); outline-offset: 3px; }
  body[data-discovery-map] .map-layer-status { position: absolute; z-index: 42; top: 218px; right: 64px; max-width: min(240px,calc(100% - 90px)); margin: 0; padding: 8px 10px; border: 1px solid var(--q-line); border-radius: 8px; background: var(--q-surface); color: var(--q-ink); font: 500 12px/1.35 'DM Sans',sans-serif; box-shadow: 0 4px 16px #0002; }
  body[data-discovery-map] .map-layer-status[hidden] { display: none; }
  body[data-discovery-map] .map-place-results { display: grid; gap: 12px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--q-line); }
  body[data-discovery-map] .map-place-results[hidden], body[data-discovery-map] .template-results-list[hidden], body[data-discovery-map] .template-results-head h1[hidden], body[data-discovery-map] #discoveryMapPagination[hidden], body[data-discovery-map] [data-map-sort][hidden] { display: none !important; }
  body[data-discovery-map] .map-place-results h2 { margin: 0; color: var(--q-ink); font: 700 16px/1.3 'DM Sans',sans-serif; }
  body[data-discovery-map] .map-place-cards { display: grid; gap: 12px; }
  body[data-discovery-map] .map-expand-control[hidden], body[data-discovery-map] #liteapi-chatbot-host { display: none !important; }
  body[data-discovery-map] .map-preview-actions { display:flex; flex-wrap:wrap; gap:8px; position:relative; z-index:2; }
  body[data-discovery-map] .map-preview-actions a { min-height:44px; display:flex; align-items:center; color:var(--q-blue); font-size:12px; font-weight:600; }
  body[data-discovery-map] .discovery-scout-tools { margin-top:24px; padding-top:20px; border-top:1px solid var(--q-line); }
  body[data-discovery-map] .discovery-scout-tools p { font-size:14px; color:var(--q-muted); }
  body[data-discovery-map] .discovery-scout-tools :is(.qualoo-scout-control,.qualoo-location-control) { position:static !important; inset:auto !important; transform:none !important; max-width:100% !important; min-height:44px !important; margin:8px 8px 0 0; }
  body[data-discovery-map] .q-mobile-summary { min-height: 78px !important; }
  body[data-discovery-map] :is(.template-search-area-btn,.qualoo-location-control) { position: absolute !important; z-index: 20 !important; inset: auto auto 24px 50% !important; transform: translateX(-50%) !important; min-height: 44px !important; padding: 12px 18px !important; max-width: calc(100% - 120px) !important; border: 0 !important; border-radius: 28px !important; background: var(--q-blue) !important; color: #fff !important; font: 600 14px/1.4 'DM Sans',sans-serif !important; }
  body[data-discovery-map] .template-search-area-btn:not(.is-visible) { display: none !important; }
  body[data-discovery-map] .maplibregl-ctrl-top-right { z-index: 24; }
  body[data-discovery-map] .maplibregl-ctrl-group { overflow: hidden; border-radius: 8px; }
  body[data-discovery-map] .maplibregl-ctrl-group button { width: 44px; height: 40px; min-height: 0; padding: 0; }
  body[data-discovery-map] .maplibregl-ctrl-attrib { max-width: calc(100% - 64px); font-size: 10px; }
  body[data-discovery-map] .map-label-chip { flex: 0 0 auto; min-height: 38px; padding: 8px 12px; border: 1px solid var(--q-line); border-radius: 8px; background: var(--q-surface); color: var(--q-ink); font: 400 14px/1.3 'DM Sans',sans-serif; }
  body[data-discovery-map] .map-label-chip[aria-pressed="true"] { border-color: var(--q-blue); color: var(--q-blue); }
  body[data-discovery-map] .map-view-toggle { display: flex; flex: 0 0 auto; align-items: center; padding: 3px; border-radius: 8px; background: color-mix(in srgb,var(--q-ink) 5%,var(--q-surface)); }
  body[data-discovery-map] .map-view-toggle-link { min-height: 38px; display: grid; place-items: center; padding: 6px 12px; text-decoration: none; color: var(--q-muted); font-size: 14px; border-radius: 6px; }
  body[data-discovery-map] .map-view-toggle-link.is-active { background: var(--q-surface); color: var(--q-ink); }
  body[data-discovery-map] .template-results-head h1 { margin: 0; font-size: 16px; }
  body[data-discovery-map] .template-results-list { gap: 14px !important; }
  body[data-discovery-map] .discovery-map-status { position: absolute; z-index: 10; top: 172px; left: 16px; max-width: calc(100% - 88px); margin: 0; border: 1px solid var(--q-line); border-radius: 8px; padding: 10px 12px; background: var(--q-surface); color: var(--q-muted); font-size: 13px; }
  body[data-discovery-map] .discovery-map-note { position: absolute; z-index: 8; bottom: 28px; left: 16px; max-width: min(340px,calc(100% - 88px)); margin: 0; padding: 12px; background: var(--q-surface); color: var(--q-muted); border-radius: 8px; font-size: 12px; line-height: 1.45; }
  body[data-discovery-map]:has(#discoveryMapPreview:not([hidden])) .discovery-map-note { display: none; }
  body[data-discovery-map] .discovery-map-empty { margin: 16px 0; padding: 16px; color: var(--q-muted); font-size: 14px; line-height: 1.5; }
  body[data-discovery-map="networks"] .network-map-provider-logo { position:relative; display:grid; place-items:center; width:100%; height:100%; background:var(--q-surface); color:var(--q-muted); border-right:1px solid var(--q-line); font-size:24px; font-weight:700; }
  body[data-discovery-map="networks"] .network-map-provider-logo .provider-logo-image { object-fit:contain !important; padding:20px; background:var(--q-surface); opacity:0; }
  body[data-discovery-map="networks"] .network-map-provider-logo.has-provider-logo .provider-logo-image { opacity:1; }
  body[data-discovery-map="networks"] .network-map-provider-logo.has-provider-logo .provider-logo-initials { visibility:hidden; }
  body[data-discovery-map] .discovery-map-dialog { position: fixed !important; inset: 0 !important; width: 100% !important; max-width: 100% !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; overflow: hidden !important; background: var(--q-surface) !important; color: var(--q-ink) !important; }
  body[data-discovery-map] .discovery-map-dialog:not([open]) { display: none !important; }
  body[data-discovery-map] .discovery-map-dialog[open] { display: flex !important; flex-direction: column !important; }
  body[data-discovery-map] .discovery-map-dialog::backdrop { background: #08090b66; }
  body[data-discovery-map] .discovery-dialog-heading { display: flex; align-items: center; justify-content: space-between; flex: 0 0 76px; padding: 12px 24px; gap: 16px; border-bottom: 1px solid var(--q-line); }
  body[data-discovery-map] .discovery-dialog-heading h2 { font-size: 22px; margin: 0; color: var(--q-ink); }
  body[data-discovery-map] .discovery-filter-scroll { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding: 0 24px 24px; }
  body[data-discovery-map] .discovery-map-dialog .hotel-filter-panel { display: block !important; position: static !important; inset: auto !important; transform: none !important; width: 100% !important; height: auto !important; max-height: none !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: var(--q-surface) !important; }
  body[data-discovery-map] :is(.template-search-state-hidden,.hotel-filter-head) { display: none !important; }
  body[data-discovery-map] .discovery-map-dialog :is(input:not([type=hidden]):not([type=checkbox]):not([type=range]),select) { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--q-line); border-radius: 8px; color: var(--q-ink); background: var(--q-surface); font: 400 16px/1.4 'DM Sans',sans-serif; }
  body[data-discovery-map="networks"] .discovery-map-dialog :is(select, input:not([type=checkbox]):not([type=range])):focus { border-color: var(--q-muted) !important; outline: none !important; box-shadow: none !important; }
  body[data-discovery-map="networks"] .discovery-map-dialog :is(select, input:not([type=checkbox]):not([type=range])):focus-visible { outline: 1px solid var(--q-muted) !important; outline-offset: 2px !important; }
  body[data-discovery-map] .discovery-map-dialog label { color: var(--q-ink); font-size: 14px; }
  body[data-discovery-map] .discovery-field { display: grid; gap: 8px; margin: 20px 0; }
  body[data-discovery-map] .discovery-map-dialog input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--q-blue); }
  body[data-discovery-map] .discovery-map-search { height: auto !important; max-height: calc(100dvh - 12px) !important; bottom: auto !important; border-radius: 0 0 16px 16px !important; }
  body[data-discovery-map] [data-map-search-controls] { overflow-y: auto; padding: 20px 16px; }
  body[data-discovery-map] .discovery-map-search .hotel-search-topbar { display: grid !important; grid-template-columns: minmax(0,1fr) !important; border: 0 !important; padding: 0 !important; gap: 10px !important; }
  body[data-discovery-map] .discovery-map-search .hotel-search-field { grid-column: auto !important; min-height: 58px !important; padding: 10px 16px !important; }
  body[data-discovery-map] .discovery-map-search .hotel-search-field:focus-within { box-shadow: none !important; border-color: var(--q-line) !important; }
  body[data-discovery-map] .discovery-map-search .qualoo-ac-list { position: relative !important; inset: auto !important; width: 100% !important; margin-top: 8px !important; max-height: 280px; overflow-y: auto; }
  body[data-discovery-map] .discovery-map-search .hotel-search-field-date { display: none !important; }
  body[data-discovery-map] .discovery-map-search .hotel-search-field > span { display: block !important; font-size: 11px; }
  body[data-discovery-map] .discovery-map-search .q-date-range { display: block !important; }
  body[data-discovery-map] .discovery-map-search .hotel-search-submit { grid-column: auto !important; }
  body[data-discovery-map] .discovery-map-search .hotel-search-submit span { display: inline !important; }
  body[data-discovery-map] .discovery-map-search .search-popover:not([hidden]) { position: relative !important; inset: auto !important; width: 100% !important; max-width: 100% !important; max-height: none !important; transform: none !important; }
  body[data-discovery-map] .discovery-map-search .search-popover { grid-column: 1 / -1; }
  body[data-discovery-map] .discovery-map-dialog .hotel-filter-check { min-height: 40px; }
  body[data-discovery-map] .map-preview-placeholder { display: grid; place-items: center; height: 100%; min-height: 176px; padding: 8px; color: var(--q-muted); font-size: 18px; font-weight: 700; }
  body[data-discovery-map] .map-preview-slideshow { position: absolute; inset: auto 0 8px; display: flex; justify-content: space-between; pointer-events: none; }
  body[data-discovery-map] .map-preview-slideshow button { pointer-events: auto; width: 28px; height: 32px; margin: 0 4px; padding: 0; border: 0; border-radius: 5px; color: #fff; background: #08090b88; font-size: 24px; }
  body[data-discovery-map] .discovery-result-card .map-preview-card { box-shadow: none !important; }
  body[data-discovery-map="networks"] .discovery-result-card .discovery-quality-score { align-self: flex-end; margin-top: 8px; }
  body[data-discovery-map="networks"] .discovery-result-card .map-preview-actions { margin-top: auto; justify-content: flex-end; }
  body[data-discovery-map="networks"] .discovery-result-card .map-preview-actions a { justify-content: center; min-height: 44px; padding: 8px 12px; border-radius: 8px; background: var(--q-blue); color: #fff !important; font-weight: 700; white-space: nowrap; text-decoration: none; }
  body[data-discovery-map] #discoveryMapPagination { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px 0; }
  body[data-discovery-map] #discoveryMapPagination:empty { display: none; }
  body[data-discovery-map] #discoveryMapPagination button { min-height: 44px; padding: 8px 14px; background: var(--q-surface); color: var(--q-ink); border: 1px solid var(--q-line); border-radius: 8px; }
  @media (min-width:700px) {
    body[data-discovery-map] .discovery-map-search { inset: 96px 24px auto !important; width: min(860px,calc(100% - 48px)) !important; max-height: calc(100dvh - 112px) !important; margin-inline: auto !important; border: 1px solid var(--q-line) !important; border-radius: 16px !important; }
    body[data-discovery-map] .discovery-map-search { overflow: visible !important; }
    body[data-discovery-map] .discovery-map-search [data-map-search-controls] { overflow: visible !important; }
    body[data-discovery-map] .discovery-map-search .qualoo-ac-list { position: absolute !important; inset: calc(100% + 8px) 0 auto !important; margin-top: 0 !important; max-height: min(280px, calc(100dvh - 300px)); }
    body[data-discovery-map] .discovery-map-filters { inset: 24px !important; width: min(540px,calc(100% - 48px)) !important; height: calc(100dvh - 48px) !important; max-height: calc(100dvh - 48px) !important; margin: auto !important; border: 1px solid var(--q-line) !important; border-radius: 16px !important; }
  }
  @media (min-width:1100px) {
    body[data-discovery-map] .map-expand-control { top: 12px !important; right: 12px !important; }
    body[data-discovery-map] .q-mobile-search-bar { display: none !important; }
    body[data-discovery-map] .discovery-map-status { top: 16px; }
    body[data-discovery-map] .discovery-map-control-band { min-height: 80px !important; }
    body[data-discovery-map] .discovery-map-search .hotel-search-topbar { grid-template-columns: 1.5fr 1fr 1fr 1.3fr 48px !important; }
    body[data-discovery-map] .discovery-map-search .hotel-search-field-date { display: flex !important; }
    body[data-discovery-map] .discovery-map-search .hotel-search-field { min-height: 52px !important; padding: 8px 12px !important; }
    body[data-discovery-map] .discovery-map-search .q-date-range { display: none !important; }
    body[data-discovery-map] .discovery-map-search .hotel-search-submit { min-width: 44px !important; padding: 10px !important; }
    body[data-discovery-map] .discovery-map-search .hotel-search-submit span { display: none !important; }
  }
}
  html[data-theme="dark"] body[data-discovery-map] .map-preview-card { --preview-surface: #111b24; --preview-ink: #e7edf4; --preview-muted: #a5afb9; --preview-line: #354354; }
  body[data-discovery-map] .map-preview-image { position: relative !important; grid-column: 1; grid-row: 1; width: 100% !important; height: 100% !important; min-height: 176px; overflow: hidden !important; border-radius: 13px 0 0 13px !important; background: var(--preview-line) !important; }
  body[data-discovery-map] .map-preview-image img { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center; }
  body[data-discovery-map] .map-preview-content { grid-column: 2; grid-row: 1; display: flex !important; flex-direction: column; justify-content: center; align-items: stretch; min-width: 0; padding: 24px 14px !important; gap: 6px !important; }
  body[data-discovery-map] .map-preview-rating { display: flex !important; align-items: center; flex-wrap: wrap; gap: 4px 6px; min-height: 20px; margin: 0 !important; }
  body[data-discovery-map] .map-preview-stars { color: #f59e0b !important; font-size: 13px !important; letter-spacing: 0 !important; line-height: 1; white-space: nowrap; }
  body[data-discovery-map] .map-preview-rating-label { color: var(--preview-muted) !important; font-size: 12px; line-height: 1.3; }
  body[data-discovery-map] .map-preview-score { margin-left: auto; padding: 3px 5px !important; border-radius: 4px !important; background: #e3f5ea !important; color: #0b7149 !important; font-size: 12px !important; font-weight: 700 !important; line-height: 1.2; }
  html[data-theme="dark"] body[data-discovery-map] .map-preview-score { background: #0b3328 !important; color: #64d996 !important; }
  body[data-discovery-map] .map-preview-name { display: block !important; width: auto !important; margin: 0 !important; overflow: visible !important; color: var(--preview-ink) !important; font-size: 14px !important; font-weight: 700; line-height: 1.3 !important; letter-spacing: 0 !important; overflow-wrap: anywhere; -webkit-line-clamp: unset !important; }
  body[data-discovery-map] .map-preview-link { color: inherit !important; text-decoration: none !important; }
  body[data-discovery-map] .map-preview-link::after { content: ''; position: absolute; inset: 0; border-radius: 14px; z-index: 1; }
  body[data-discovery-map] .map-preview-link:focus-visible { outline: none; }
  body[data-discovery-map] .map-preview-link:focus-visible::after { outline: 3px solid var(--q-blue); outline-offset: 3px; }
  body[data-discovery-map] :is(.map-preview-address,.map-preview-stay) { margin: 0 !important; color: var(--preview-muted) !important; font-size: 12px !important; font-weight: 400; line-height: 1.4 !important; overflow-wrap: anywhere; }
  body[data-discovery-map] .map-preview-price { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 3px 6px; align-self: stretch !important; margin: 10px 0 0 !important; color: var(--preview-ink) !important; font-size: 12px !important; white-space: normal !important; }
  body[data-discovery-map] .map-preview-price strong { color: var(--preview-ink) !important; font-size: 22px !important; line-height: 1.2; font-weight: 700; white-space: nowrap; }
  body[data-discovery-map] .map-preview-price span { color: var(--preview-muted) !important; font-size: 12px !important; font-weight: 400 !important; }
  body[data-discovery-map] .map-preview-close { position: absolute; top: -16px; right: -14px; z-index: 4; display: grid; place-items: center; width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: transparent !important; color: var(--preview-muted) !important; cursor: pointer; }
  body[data-discovery-map] .map-preview-close::before { content: ''; position: absolute; inset: 6px; border: 1px solid var(--preview-line); border-radius: 50%; background: var(--preview-surface); }
  body[data-discovery-map] .map-preview-close svg { position: relative; width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; }
  body[data-discovery-map] .map-preview-close:focus-visible { outline: 2px solid var(--q-blue); outline-offset: 0; }
  body[data-discovery-map] .map-preview-slideshow { z-index: 2; }
  body[data-discovery-map] .discovery-map-popup { width: var(--hotel-preview-max-width,360px) !important; }
  body[data-discovery-map] .map-preview-photo-control { width: 28px !important; min-width: 28px !important; height: 32px !important; min-height: 32px !important; margin-inline: 4px !important; padding: 0 !important; color: #fff !important; }
  body[data-discovery-map] .discovery-map-popup .maplibregl-popup-content { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
  body[data-discovery-map] .discovery-map-popup .maplibregl-popup-tip { display: none; }
  body[data-discovery-map] #discoveryMapPreview { display: none; }
  @media (max-width:1099px) {
    body[data-discovery-map] #discoveryMapPreview:not([hidden]) { position: absolute; z-index: 28; display: block; left: max(16px,env(safe-area-inset-left)); right: max(16px,env(safe-area-inset-right)); bottom: max(20px,env(safe-area-inset-bottom)); max-width: 420px; margin-inline: auto; }
    body[data-discovery-map] .template-map-panel:has(#discoveryMapPreview:not([hidden])) :is(.maplibregl-ctrl-top-right,.template-search-area-btn) { bottom: calc(var(--hotel-preview-height,220px) + 36px) !important; }
    body[data-discovery-map]:has(#discoveryMapPreview:not([hidden])) #liteapi-chatbot-host { display: none !important; }}
  @media (min-width:600px) and (max-width:1099px) and (max-height:540px) {
    body[data-discovery-map] .template-map-panel:has(#discoveryMapPreview:not([hidden])) .maplibregl-ctrl-top-right { bottom: max(18px,env(safe-area-inset-bottom)) !important; }}
  body[data-discovery-map] .nav-global :is(.stays-prefs-trigger,.theme-toggle):hover { background: #2b3039 !important; border-color: #626b7b !important; }
  body[data-discovery-map] .nav-global .q-nav-section:hover { background: #243b55 !important; }
  body[data-discovery-map] .q-nav-section svg { width: 16px; height: 16px; margin-right: 6px; stroke: currentColor !important; }
  html[data-theme] body[data-discovery-map] .nav-global { background: #08090b !important; color: #f0f1f5 !important; border-bottom-color: #292c33 !important; }
  body[data-discovery-map] .hotel-search-field input:focus { outline: none !important; box-shadow: none !important; }
  body[data-discovery-map] .hotel-search-field:has(input:focus-visible) { box-shadow: inset 0 -2px var(--q-blue) !important; }
  body[data-discovery-map] .nav-global { display: block !important; }
  body[data-discovery-map] .q-nav-section { color: #e8f0ff !important; }
  @media (min-width:1100px) { body[data-discovery-map] .q-search-editor .guests-popover:not([hidden]) { left: calc(50% + 240px) !important; }}
  body[data-discovery-map] .section-head { flex-wrap: wrap !important; }
  body[data-discovery-map] .section-head > div:first-child { min-width: 0 !important; flex: 1 1 140px !important; }
  body[data-discovery-map] .q-nav-section { display: none !important; }
  @media (min-width:1100px) {
    body[data-discovery-map].q-search-open .nav-inner > .q-search-summary { display:none !important; }}
  body[data-discovery-map] .q-summary-icon svg, body[data-discovery-map] .q-filter-trigger svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; }
  body[data-discovery-map] .q-filter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
  body[data-discovery-map] .q-filter-trigger svg { color: #8995a7; }
  body[data-discovery-map] .q-summary-icon { display: flex; align-items: center; justify-content: center; }
  body[data-discovery-map] .hotel-search-submit svg { stroke: currentColor; stroke-width: 1.8; }
  @media (min-width:1100px) { body[data-discovery-map] .nav-inner .q-summary-icon { color: white !important; }}
  body[data-discovery-map] .q-search-editor .calendar-day.is-selected { color: white !important; }
  body[data-discovery-map] .q-search-editor :is(button:disabled,.calendar-day.is-muted) { color: #b2bac8 !important; }
  body[data-discovery-map] .q-price-range { position: relative; height: 40px; }
  body[data-discovery-map] .q-price-range input[type="range"] { appearance: none !important; position: absolute !important; inset: 0 !important; width: 100% !important; height: 40px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; pointer-events: none; }
  body[data-discovery-map] .q-price-range::before { content:''; position: absolute; left:0; right:0; top:18px; height:4px; background:var(--q-blue); border-radius:3px; }
  body[data-discovery-map] .q-price-range input::-webkit-slider-thumb { appearance:none; width:20px; height:20px; border:2px solid var(--q-blue); border-radius:50%; background:var(--q-surface); pointer-events:auto; cursor:ew-resize; }
  body[data-discovery-map] .q-price-range input::-moz-range-thumb { width:18px; height:18px; border:2px solid var(--q-blue); border-radius:50%; background:var(--q-surface); pointer-events:auto; }
  body[data-discovery-map] .q-search-editor :is(button,span,strong,input,select,h2,h3), body[data-discovery-map] .q-search-summary :is(span,strong) { color: var(--q-ink) !important; }
  body[data-discovery-map] .q-close { color: var(--q-ink) !important; font-size: 28px !important; background: transparent !important; border: 0 !important; }
  body[data-discovery-map] .q-search-editor .hotel-search-submit, body[data-discovery-map] .q-search-editor .hotel-search-submit span { color: white !important; }
  body[data-discovery-map] .nav-global :is(.stays-prefs-trigger,.theme-toggle) svg * { stroke: #d6dbe5 !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-check { display: flex !important; align-items: center !important; gap: 10px !important; min-height: 34px !important; font-size: 15px !important; font-weight: 400 !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-check span { font: inherit !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-check input { width: 20px !important; height: 20px !important; flex: 0 0 20px !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-section h3 { font-size: 17px !important; margin-bottom: 12px !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-text { min-height: 40px !important; padding: 8px !important; font-size: 16px !important; }
  body[data-discovery-map] .q-filter-footer button { font-size: 15px !important; min-height: 46px !important; }
  body[data-discovery-map] .results-head-main { flex-direction: row !important; }
  body[data-discovery-map] .results-head-main h2 { text-align: left !important; }
  body[data-discovery-map] .q-filter-panel { transform: none !important; visibility: visible !important; pointer-events: auto !important; }
  body[data-discovery-map] .hotel-card-saving-icon { width: 12px !important; height: 12px !important; flex: 0 0 12px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.5 !important; }
  body[data-discovery-map] .hotel-card-fact-icon { fill: none !important; stroke: currentColor !important; stroke-width: 1.2 !important; }
  body[data-discovery-map] .results-count-block { text-align: left !important; width: auto !important; }
  body[data-discovery-map] .results-actions-group:empty { display: none !important; }
  body[data-discovery-map] :is(.stays-prefs-trigger,.theme-toggle) svg { color: #d6dbe5 !important; stroke: currentColor !important; }
  body[data-discovery-map] .template-map-toolbar { display: none !important; }
  body[data-discovery-map] #stays-search-area-btn { top: auto !important; bottom: 24px !important; left: 50% !important; transform: translateX(-50%) !important; border-radius: 28px !important; background: var(--q-blue) !important; color: white !important; padding: 12px 18px !important; min-height: 44px !important; }
  body[data-discovery-map] { --q-surface: #fff; --q-ink: #151923; --q-muted: #647084; --q-line: #e2e5eb; --q-blue: #176cf4; margin: 0 !important; background: var(--q-surface) !important; color: var(--q-ink) !important; font-family: 'DM Sans', sans-serif !important; }
  html[data-theme="dark"] body[data-discovery-map] { --q-surface: #161820; --q-ink: #f0f1f5; --q-muted: #a6afbf; --q-line: #353b49; }
  body[data-discovery-map] *, body[data-discovery-map] *::before, body[data-discovery-map] *::after { box-sizing: border-box; }
  body[data-discovery-map] [hidden] { display: none !important; }
  body[data-discovery-map] :is(button,a,input,select):focus-visible { outline: 2px solid var(--q-blue); outline-offset: 3px; }
  body[data-discovery-map] .nav-global { position: relative !important; inset: auto !important; z-index: 100 !important; height: auto !important; min-height: 76px !important; padding: 0 !important; border-bottom: 1px solid var(--q-line) !important; background: var(--q-surface) !important; color: var(--q-ink) !important; box-shadow: none !important; }
  body[data-discovery-map] .nav-global > .container { width: 100% !important; max-width: 1200px !important; padding: 0 12px !important; margin: auto !important; }
  body[data-discovery-map] .nav-inner { display: flex !important; align-items: center !important; justify-content: space-between !important; min-height: 76px !important; height: auto !important; gap: 12px !important; padding: 0 !important; }
  body[data-discovery-map] .nav-brand { flex: 0 0 auto !important; }
  body[data-discovery-map] .nav-logo-img { display: block !important; width: 110px !important; height: auto !important; max-height: 44px !important; filter: none !important; }
  body[data-discovery-map] :is(.nav-tabs,.nav-mobile-menu,.discovery-section-switcher) { display: none !important; }
  body[data-discovery-map] .nav-actions { position: static !important; display: flex !important; align-items: center !important; flex-direction: row !important; width: auto !important; gap: 10px !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
  body[data-discovery-map] :is(.stays-prefs-trigger,.theme-toggle) { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 38px !important; min-width: 38px !important; height: 38px !important; padding: 9px !important; border: 1px solid #343740 !important; border-radius: 9px !important; background: #1c1f25 !important; color: #d6dbe5 !important; }
  body[data-discovery-map] .stays-prefs-trigger span { display: none !important; }
  body[data-discovery-map] .stays-prefs-trigger svg { display: block !important; width: 20px !important; height: 20px !important; }
  body[data-discovery-map] .account-link { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: auto !important; height: 38px !important; padding: 0 17px !important; border: 0 !important; border-radius: 8px !important; background: var(--q-blue) !important; color: white !important; font: 600 14px/1 'DM Sans',sans-serif !important; }
  body[data-discovery-map] .page-wrap { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  body[data-discovery-map] .page-wrap > .container { width: 100% !important; max-width: 1200px !important; margin: auto !important; padding: 24px 12px 60px !important; }
  body[data-discovery-map] .hotel-search-topbar { position: relative !important; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; width: 100% !important; max-width: none !important; height: auto !important; min-height: 0 !important; gap: 8px !important; padding: 9px !important; margin: 0 auto !important; border: 1px solid var(--q-line) !important; border-radius: 16px !important; background: var(--q-surface) !important; color: var(--q-ink) !important; box-shadow: none !important; transform: none !important; overflow: visible !important; }
  body[data-discovery-map] .hotel-search-field { display: flex !important; flex-direction: column !important; justify-content: center !important; width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 44px !important; padding: 7px 12px !important; margin: 0 !important; border: 1px solid var(--q-line) !important; border-radius: 8px !important; background: var(--q-surface) !important; color: var(--q-ink) !important; }
  body[data-discovery-map] .hotel-search-field > span { display: none !important; }
  body[data-discovery-map] :is(.hotel-search-field-main,.hotel-search-field-guests,.hotel-search-submit,.q-date-range) { grid-column: 1 / -1 !important; }
  body[data-discovery-map] .hotel-search-field :is(input,.search-field-trigger) { width: 100% !important; min-width: 0 !important; height: 28px !important; min-height: 28px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--q-ink) !important; font: 400 16px/1.4 'DM Sans',sans-serif !important; text-align: left !important; }
  body[data-discovery-map] .search-field-trigger strong { font: inherit !important; }
  body[data-discovery-map] .hotel-search-submit { display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; width: 100% !important; min-height: 44px !important; height: auto !important; padding: 10px !important; margin: 0 !important; border: 0 !important; border-radius: 8px !important; background: var(--q-blue) !important; color: white !important; font: 600 16px/1.2 'DM Sans',sans-serif !important; }
  body[data-discovery-map] .hotel-search-submit svg { width: 20px !important; height: 20px !important; }
  body[data-discovery-map] .hotel-search-submit > span:not(.q-submit-copy):not(.q-landing-submit-label) { display: none !important; }
  body[data-discovery-map] .section { margin: 20px 0 32px !important; }
  body[data-discovery-map] .section-head { display: flex !important; align-items: center !important; gap: 12px !important; margin-bottom: 18px !important; }
  body[data-discovery-map] .section-head h2 { font-size: 20px !important; }
  body[data-discovery-map] :is(.q-search-summary,.q-filter-trigger,.q-date-range) { appearance: none; background: var(--q-surface); color: var(--q-ink); border: 1px solid var(--q-line); font: 400 14px/1.4 'DM Sans',sans-serif; cursor: pointer; }
  body[data-discovery-map] .nav-inner > .q-search-summary { display: none !important; }
  body[data-discovery-map] .q-mobile-search-bar { padding: 16px 10px 0 !important; }
  body[data-discovery-map] .q-mobile-summary { display: grid !important; grid-template-columns: auto minmax(0,1fr) 20px !important; gap: 3px 8px !important; width: 100% !important; min-height: 56px !important; border-radius: 8px !important; padding: 9px 12px !important; text-align: left !important; }
  body[data-discovery-map] .q-summary-destination { grid-column: 1 / 3; font-weight: 500; }
  body[data-discovery-map] .q-summary-dates { font-size: 12px; color: var(--q-muted); }
  body[data-discovery-map] .q-summary-guests { font-size: 12px; color: var(--q-muted); }
  body[data-discovery-map] .q-summary-icon { grid-column: 3; grid-row: 1 / 3; align-self: center; font-size: 25px; }
  body[data-discovery-map] .q-mobile-list-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
  body[data-discovery-map] .q-filter-trigger { border-radius: 8px; min-height: 44px; padding: 10px 18px; white-space: nowrap; }
  body[data-discovery-map] .q-sort { width: 100% !important; position: relative !important; }
  body[data-discovery-map] .q-sort .sort-button { width: 100% !important; min-height: 44px !important; border: 1px solid var(--q-line) !important; border-radius: 8px !important; background: var(--q-surface) !important; color: var(--q-ink) !important; justify-content: center !important; }
  body[data-discovery-map] .q-sort .sort-button strong { font-size: 0 !important; }
  body[data-discovery-map] .q-sort .sort-button strong::after { content: '↕  Sort'; font-size: 14px; font-weight: 400; }
  body[data-discovery-map] .results-layout { display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  body[data-discovery-map] .results-main-panel { width: 100% !important; min-width: 0 !important; padding: 0 !important; }
  body[data-discovery-map] :is(.results-main-panel > .top-strip,.stays-mobile-filter-toggle,.results-count-block > p,.stays-map-quick-controls,.stays-mobile-map-actions,.stays-mobile-filter-button,#staysMobileSearchSheet) { display: none !important; }
  body[data-discovery-map] .results-head-main { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; min-height: 40px !important; margin: 0 0 12px !important; padding: 0 !important; }
  body[data-discovery-map] :is(.results-head-main h2,.template-results-head h2,.stays-map-results-summary) { font-size: 16px !important; line-height: 1.35 !important; margin: 0 !important; }
  body[data-discovery-map] .results-head-main .view-toggle { display: none !important; }
  body[data-discovery-map] :is(.results-list,.template-results-list) { display: grid !important; grid-template-columns: minmax(0,1fr) !important; grid-auto-rows: max-content !important; gap: 12px !important; min-width: 0 !important; align-content: start !important; container: q-cards / inline-size; }
  /* All three categories share the results-card footprint. Sparse records must
     not shrink a result into a popup; long content can still grow without clipping. */
  body[data-discovery-map] .template-results { border: 0 !important; }
  body[data-discovery-map] .template-results-list { padding: 0 !important; }
  body[data-discovery-map] :is(.hotel-result-card,.discovery-result-card > .map-preview-card) { display: grid !important; grid-template-columns: 38% minmax(0,1fr) !important; grid-template-rows: auto !important; gap: 0 !important; box-sizing: border-box !important; width: 100% !important; height: auto !important; min-height: 336px !important; max-height: none !important; margin: 0 !important; padding: 4px !important; border: 1px solid var(--q-line) !important; border-radius: 17px !important; background: var(--q-surface) !important; overflow: hidden !important; }
  body[data-discovery-map] :is(.hotel-card-media,.discovery-result-card .map-preview-image) { position: relative !important; grid-column: 1 !important; grid-row: 1 !important; width: 100% !important; height: 100% !important; min-height: 0 !important; margin: 0 !important; border-radius: 12px !important; overflow: hidden !important; }
  body[data-discovery-map] :is(.hotel-card-media,.discovery-result-card .map-preview-image) img { position: absolute !important; inset: 0 !important; display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; }
  body[data-discovery-map] :is(.hotel-card-body,.discovery-result-card .map-preview-content) { grid-column: 2 !important; grid-row: 1 !important; display: flex !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 10px !important; min-width: 0 !important; height: auto !important; padding: 8px 8px 6px 10px !important; position: static !important; }
  body[data-discovery-map] .hotel-card-main { display: block !important; position: static !important; min-width: 0 !important; max-width: none !important; padding: 0 !important; }
  body[data-discovery-map] .hotel-card-rating { display: block !important; color: #ff822b !important; font-size: 15px !important; letter-spacing: 1px !important; }
  body[data-discovery-map] :is(.hotel-card-title,.discovery-result-card .map-preview-name) { display: block !important; overflow: visible !important; white-space: normal !important; overflow-wrap: anywhere !important; font: 600 16px/1.25 'DM Sans',sans-serif !important; color: var(--q-ink) !important; margin: 2px 0 4px !important; max-height: none !important; -webkit-line-clamp: unset !important; }
  body[data-discovery-map="places"] .discovery-result-card .map-preview-link:focus-visible::after { outline-offset: -3px; }
  body[data-discovery-map] :is(.hotel-card-location,.hotel-card-distance) { display: flex !important; align-items: flex-start !important; gap: 4px !important; margin: 4px 0 !important; color: var(--q-muted) !important; font-size: 12px !important; line-height: 1.4 !important; white-space: normal !important; overflow: visible !important; max-height: none !important; }
  body[data-discovery-map] .hotel-card-fact-icon { width: 16px !important; height: 16px !important; flex: 0 0 16px !important; }
  body[data-discovery-map] .hotel-card-facts { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; margin: 6px 0 0 !important; font-size: 12px !important; }
  body[data-discovery-map] .hotel-card-review-summary { position: static !important; display: grid !important; grid-template-columns: auto auto minmax(0,1fr) !important; grid-template-rows: auto !important; align-items: center !important; justify-content: start !important; gap: 4px !important; width: auto !important; margin: 0 !important; color: var(--q-ink) !important; text-align: left !important; }
  body[data-discovery-map] .hotel-card-review-summary strong { grid-column: 1 !important; grid-row: 1 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 25px !important; height: 25px !important; min-width: 25px !important; border-radius: 7px 7px 12px 7px !important; background: #04bc7f !important; color: white !important; font-size: 11px !important; }
  body[data-discovery-map] .hotel-card-review-summary > span { grid-column: 2 !important; grid-row: 1 !important; font-size: 12px !important; }
  body[data-discovery-map] .hotel-card-review-summary small { grid-column: 3 !important; grid-row: 1 !important; color: var(--q-muted) !important; font-size: 10px !important; white-space: normal !important; }
  body[data-discovery-map] .hotel-card-booking { display: flex !important; flex-direction: column !important; align-items: flex-end !important; align-self: stretch !important; justify-content: flex-end !important; width: 100% !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; position: static !important; margin: auto 0 0 !important; padding: 0 !important; gap: 5px !important; border: 0 !important; text-align: right !important; }
  body[data-discovery-map] .hotel-card-saving-badge { display: inline-flex !important; align-items: center !important; flex-wrap: wrap !important; justify-content: center !important; gap: 3px !important; max-width: 100% !important; padding: 7px 8px !important; background: #c2efa5 !important; border: 1px solid #89d663 !important; border-radius: 30px !important; color: #10200e !important; font-size: 10px !important; white-space: normal !important; }
  body[data-discovery-map] .hotel-card-price { display: flex !important; justify-content: flex-end !important; align-items: baseline !important; flex-wrap: wrap !important; gap: 4px !important; color: var(--q-ink) !important; }
  body[data-discovery-map] .hotel-card-price strong { font-size: 20px !important; line-height: 1.2 !important; color: inherit !important; }
  body[data-discovery-map] .hotel-card-price span { font-size: 11px !important; color: var(--q-muted) !important; }
  body[data-discovery-map] .hotel-card-stay-meta { font-size: 10px !important; line-height: 1.4 !important; color: var(--q-muted) !important; white-space: normal !important; }
  body[data-discovery-map] .hotel-card-reference-price { display: block !important; font-size: 11px !important; line-height: 1.4 !important; color: var(--q-ink) !important; background: color-mix(in srgb,var(--q-ink) 5%,var(--q-surface)) !important; padding: 9px 11px !important; border-radius: 12px !important; }
  body[data-discovery-map] .hotel-availability-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: auto !important; max-width: 100% !important; min-height: 36px !important; height: auto !important; padding: 8px 12px !important; margin: 3px 0 0 !important; background: var(--q-blue) !important; color: white !important; border: 0 !important; border-radius: 8px !important; font: 600 11px/1.3 'DM Sans',sans-serif !important; white-space: normal !important; }
  body[data-discovery-map] .q-search-editor { display: none !important; }
  body[data-discovery-map] .q-backdrop { display: none !important; position: fixed; inset: 0; z-index: 95; border: 0; background: #0006; }
  body[data-discovery-map]:is(.q-search-open,.q-filter-open) { overflow: hidden !important; }
  body[data-discovery-map]:is(.q-search-open,.q-filter-open) .q-backdrop { display: block !important; }
  body[data-discovery-map].q-search-open .q-search-editor { display: block !important; position: fixed !important; inset: 0 0 auto !important; z-index: 120 !important; max-height: 95dvh !important; overflow-y: auto !important; padding: 0 16px 18px !important; border-radius: 0 0 16px 16px !important; background: var(--q-surface) !important; }
  body[data-discovery-map] .q-editor-head { display: flex; justify-content: space-between; align-items: center; min-height: 68px; border-bottom: 1px solid var(--q-line); margin: 0 -16px 16px; padding: 0 16px; }
  body[data-discovery-map] .q-editor-head h2 { font-size: 19px; margin: 0; }
  body[data-discovery-map] .q-close { display: flex !important; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--q-ink); font-size: 28px; width: 40px; height: 44px; padding: 0; }
  body[data-discovery-map] .q-search-editor .hotel-search-topbar { border: 0 !important; padding: 0 !important; gap: 10px !important; }
  body[data-discovery-map] .q-search-editor .hotel-search-field { min-height: 58px !important; padding: 12px 16px !important; }
  body[data-discovery-map] .q-search-editor .hotel-search-field-date { display: none !important; }
  body[data-discovery-map] .q-date-range { display: block !important; min-height: 58px !important; border-radius: 8px !important; padding: 12px 16px !important; text-align: left !important; font-size: 16px !important; }
  body[data-discovery-map] .q-search-editor .hotel-search-submit { margin-top: 8px !important; }
  body[data-discovery-map] .search-popover:not([hidden]) { position: fixed !important; inset: 80px 12px auto !important; transform: none !important; width: auto !important; max-width: calc(100vw - 24px) !important; max-height: calc(100dvh - 104px) !important; overflow: auto !important; z-index: 180 !important; border: 1px solid var(--q-line) !important; background: var(--q-surface) !important; color: var(--q-ink) !important; border-radius: 14px !important; padding: 16px !important; }
  body[data-discovery-map] :is(.calendar-months,.date-popover-grid) { display: grid !important; grid-template-columns: minmax(0,1fr) !important; }
  body[data-discovery-map] .q-filter-panel { display: none !important; }
  body[data-discovery-map].q-filter-open .q-filter-panel { display: flex !important; flex-direction: column !important; position: fixed !important; inset: 0 !important; z-index: 200 !important; width: 100% !important; max-width: none !important; height: 100dvh !important; max-height: none !important; padding: 0 !important; overflow: hidden !important; border: 0 !important; border-radius: 0 !important; background: var(--q-surface) !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-head { display: flex !important; align-items: center !important; justify-content: space-between !important; flex: 0 0 76px !important; margin: 0 !important; padding: 18px 24px !important; border-bottom: 1px solid var(--q-line) !important; }
  body[data-discovery-map] .q-filter-panel .hotel-filter-head h2 { font-size: 23px !important; }
  body[data-discovery-map] .q-filter-scroll { flex: 1 1 auto; overflow-y: auto; min-height: 0; padding: 12px 24px; }
  body[data-discovery-map] .q-filter-scroll > :is(.filters-head,.qualoo-map-filter-close,.template-search-state-hidden) { display: none !important; }
  body[data-discovery-map] .hotel-filter-section { margin: 0 !important; padding: 24px 0 !important; border-bottom: 1px solid var(--q-line) !important; }
  body[data-discovery-map] .q-filter-footer { display: flex; flex: 0 0 auto; gap: 12px; padding: 16px 24px max(16px,env(safe-area-inset-bottom)); border-top: 1px solid var(--q-line); background: var(--q-surface); }
  body[data-discovery-map] .q-filter-footer button { flex: 1; min-height: 46px; padding: 10px; border: 1px solid var(--q-line); border-radius: 9px; background: var(--q-surface); color: var(--q-ink); font: 500 15px 'DM Sans',sans-serif; }
  body[data-discovery-map] .q-filter-footer .q-show-results { background: var(--q-blue); border-color: var(--q-blue); color: white; }
  body[data-discovery-map] { height: 100dvh !important; overflow: hidden !important; }
  body[data-discovery-map] :is(.site-shell,.page-wrap.full-width,.half-map-shell,.half-map-content,.half-map-inner,.template-map,.template-map-panel) { width: 100% !important; max-width: none !important; height: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
  body[data-discovery-map] .nav-global { display: none !important; }
  body[data-discovery-map].q-search-open .nav-global { display: block !important; }
  body[data-discovery-map] .half-map-inner { display: grid !important; grid-template-columns: minmax(0,1fr) !important; grid-template-rows: minmax(0,1fr) !important; }
  body[data-discovery-map] .template-results { display: none !important; }
  body[data-discovery-map] .template-map { display: block !important; grid-column: 1 !important; grid-row: 1 !important; }
  body[data-discovery-map] .template-map-panel { position: relative !important; border-radius: 0 !important; overflow: hidden !important; }
  body[data-discovery-map] #map { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; min-height: 0 !important; }
  body[data-discovery-map] .discovery-map-control-band { display: none !important; }
  body[data-discovery-map] .q-mobile-search-bar { position: absolute; z-index: 40; inset: 16px 12px auto; display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 10px; padding: 0 !important; }
  body[data-discovery-map] .q-map-back { display: flex; align-items: center; justify-content: center; align-self: center; background: var(--q-surface); color: var(--q-ink); width: 44px; height: 44px; border-radius: 50%; text-decoration: none; font-size: 36px; box-shadow: 0 2px 6px #0002; }
  body[data-discovery-map] .q-mobile-summary { grid-template-columns: minmax(0,1fr) 22px !important; }
  body[data-discovery-map] .q-mobile-summary .q-summary-destination { grid-column: 1 !important; }
  body[data-discovery-map] .q-mobile-summary .q-summary-dates { grid-column: 1 !important; }
  body[data-discovery-map] .q-mobile-summary .q-summary-guests { grid-column: 1 !important; }
  body[data-discovery-map] .q-mobile-summary .q-summary-icon { grid-column: 2 !important; grid-row: 1 / 4 !important; }
  body[data-discovery-map] .q-mobile-search-bar > .q-filter-trigger { grid-column: 1 / 3; justify-self: start; box-shadow: 0 2px 6px #0001; }
  body[data-discovery-map] .maplibregl-ctrl-top-right { top: auto !important; bottom: 18px !important; right: 8px !important; }
  body[data-discovery-map] :is(.map-search-area-button,#searchThisAreaBtn,.stays-map-search-area) { top: auto !important; bottom: 24px !important; left: 50% !important; transform: translateX(-50%) !important; border-radius: 28px !important; background: var(--q-blue) !important; color: white !important; padding: 12px 18px !important; }
  @container q-cards (min-width: 700px) {
    body[data-discovery-map] :is(.hotel-result-card,.discovery-result-card > .map-preview-card) { grid-template-columns: 200px minmax(0,1fr) !important; min-height: 286px !important; padding: 0 !important; }
    body[data-discovery-map] :is(.hotel-card-media,.discovery-result-card .map-preview-image) { border-radius: 0 !important; }
    body[data-discovery-map] :is(.hotel-card-body,.discovery-result-card .map-preview-content) { padding: 14px 14px 12px 16px !important; gap: 12px !important; }
    body[data-discovery-map] .hotel-result-card .hotel-card-body { display: grid !important; grid-template-columns: minmax(0,1fr) 200px !important; grid-template-rows: auto 1fr !important; }
    body[data-discovery-map] .hotel-card-main { grid-column: 1 !important; grid-row: 1 / 3 !important; }
    body[data-discovery-map] :is(.hotel-card-title,.discovery-result-card .map-preview-name) { font-size: 18px !important; }
    body[data-discovery-map] :is(.hotel-card-location,.hotel-card-distance) { font-size: 14px !important; }
    body[data-discovery-map] .hotel-card-review-summary { grid-column: 2 !important; grid-row: 1 !important; grid-template-columns: minmax(0,1fr) 32px !important; grid-template-rows: auto auto !important; text-align: right !important; justify-self: end !important; }
    body[data-discovery-map] .hotel-card-review-summary strong { grid-column: 2 !important; grid-row: 1 / 3 !important; width: 32px !important; height: 32px !important; font-size: 14px !important; }
    body[data-discovery-map] .hotel-card-review-summary > span { grid-column: 1 !important; grid-row: 1 !important; font-size: 14px !important; }
    body[data-discovery-map] .hotel-card-review-summary small { grid-column: 1 !important; grid-row: 2 !important; font-size: 13px !important; }
    body[data-discovery-map] .hotel-card-booking { grid-column: 2 !important; grid-row: 2 !important; align-self: end !important; gap: 6px !important; }
    body[data-discovery-map] .hotel-card-price strong { font-size: 25px !important; }
    body[data-discovery-map] :is(.hotel-card-saving-badge,.hotel-card-stay-meta,.hotel-card-reference-price) { font-size: 12px !important; }}
  @media (min-width: 700px) {
    body[data-discovery-map] :is(.calendar-months,.date-popover-grid) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    body[data-discovery-map] .search-popover:not([hidden]) { width: 720px !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important; }
    body[data-discovery-map] .guests-popover:not([hidden]) { width: 350px !important; }}
  @media (min-width: 1100px) {
    body[data-discovery-map] .nav-logo-img { width: 160px !important; }
    body[data-discovery-map] .nav-inner { min-height: 84px !important; }
    body[data-discovery-map] .nav-inner > .q-search-summary { display: flex !important; align-items: center !important; gap: 14px !important; min-height: 46px !important; padding: 4px 5px 4px 18px !important; border-radius: 30px !important; margin-left: auto !important; margin-right: auto !important; }
    body[data-discovery-map] .nav-inner .q-summary-dates, body[data-discovery-map] .nav-inner .q-summary-guests { font-size: 14px !important; color: var(--q-ink) !important; border-left: 1px solid var(--q-line); padding-left: 14px; }
    body[data-discovery-map] .nav-inner .q-summary-icon { display: flex; justify-content: center; align-items: center; border-radius: 50%; background: var(--q-blue); color: white; width: 36px; height: 36px; }
    body[data-discovery-map] .q-mobile-search-bar { display: none !important; }
    body[data-discovery-map] .results-layout { display: grid !important; grid-template-columns: 288px minmax(0,1fr) !important; gap: 24px !important; }
    body[data-discovery-map] .results-head-main { min-height: 40px !important; }
    body[data-discovery-map] .results-head-main .view-toggle { display: inline-flex !important; margin-left: auto !important; }
    body[data-discovery-map] .q-sort { position: relative !important; inset: auto !important; width: auto !important; margin-left: auto !important; order: 1 !important; }
    body[data-discovery-map] .results-head-main .view-toggle { order: 2 !important; margin-left: 8px !important; }
    body[data-discovery-map] .q-sort .sort-button { border: 0 !important; }
    body[data-discovery-map] .q-sort .sort-button strong { font-size: 14px !important; font-weight: 400 !important; }
    body[data-discovery-map] .q-sort .sort-button strong::after { display: none; }
    body[data-discovery-map].q-search-open .q-search-editor { position: relative !important; inset: auto !important; padding: 8px 20px 20px !important; overflow: visible !important; border-radius: 0 !important; }
    body[data-discovery-map] .q-editor-head { display: none !important; }
    body[data-discovery-map] .q-search-editor .hotel-search-topbar { width: 860px !important; max-width: 100% !important; grid-template-columns: 1.5fr 1fr 1fr 1.3fr 48px !important; border: 1px solid var(--q-line) !important; padding: 5px !important; gap: 0 !important; border-radius: 40px !important; }
    body[data-discovery-map] .q-search-editor .hotel-search-field { grid-column: auto !important; min-height: 44px !important; padding: 4px 20px !important; border: 0 !important; border-right: 1px solid var(--q-line) !important; border-radius: 0 !important; }
    body[data-discovery-map] .q-search-editor .hotel-search-field-date { display: flex !important; }
    body[data-discovery-map] .q-search-editor .hotel-search-field > span { display: block !important; font-size: 11px !important; }
    body[data-discovery-map] .q-date-range { display: none !important; }
    body[data-discovery-map] .q-search-editor .hotel-search-submit { grid-column: auto !important; width: 46px !important; height: 46px !important; border-radius: 50% !important; margin: 0 !important; }
    body[data-discovery-map] .q-submit-copy { display: none !important; }
    body[data-discovery-map] .search-popover:not([hidden]) { top: 156px !important; }
    body[data-discovery-map] .site-shell { display: flex !important; flex-direction: column !important; }
    body[data-discovery-map] .nav-global { display: block !important; flex: 0 0 auto !important; }
    body[data-discovery-map] .nav-global > .container { max-width: none !important; padding: 0 24px !important; }
    body[data-discovery-map] .page-wrap.full-width { flex: 1 1 auto !important; min-height: 0 !important; height: auto !important; }
    body[data-discovery-map] .half-map-shell { display: flex !important; flex-direction: column !important; }
    body[data-discovery-map] .discovery-map-control-band { display: flex !important; align-items: center !important; gap: 12px !important; flex: 0 0 80px !important; width: 100% !important; max-height: none !important; padding: 12px 24px !important; background: var(--q-surface) !important; border-bottom: 1px solid var(--q-line) !important; }
    body[data-discovery-map] .map-label-chips { display: flex !important; flex-wrap: nowrap !important; gap: 8px !important; overflow-x: auto !important; }
    body[data-discovery-map] .map-view-toggle { margin-left: auto !important; }
    body[data-discovery-map] .half-map-content { flex: 1 1 auto !important; height: auto !important; min-height: 0 !important; }
    body[data-discovery-map] .half-map-inner { grid-template-columns: repeat(2,minmax(0,1fr)) !important; grid-template-rows: minmax(0,1fr) !important; }
  body[data-discovery-map] .template-results { display: flex !important; flex-direction: column !important; grid-column: 1 !important; grid-row: 1 !important; min-width: 0 !important; height: 100% !important; padding: 0 18px 18px !important; overflow-y: auto !important; background: var(--q-surface) !important; }
    body[data-discovery-map] .template-results-head { display: flex !important; align-items: center !important; justify-content: space-between !important; flex: 0 0 64px !important; padding: 0 !important; }
    body[data-discovery-map] .q-map-sort { border: 0; background: var(--q-surface); color: var(--q-ink); font: 14px 'DM Sans',sans-serif; max-width: 100%; }
    body[data-discovery-map] .template-results-list { display: grid !important; height: auto !important; overflow: visible !important; }
    body[data-discovery-map] .template-map { grid-column: 2 !important; }
    body[data-discovery-map] .half-map-inner.map-is-expanded { grid-template-columns: minmax(0,1fr) !important; }
    body[data-discovery-map] .half-map-inner.map-is-expanded .template-results { display: none !important; }
    body[data-discovery-map] .half-map-inner.map-is-expanded .template-map { grid-column: 1 !important; }
    body[data-discovery-map].q-filter-open .q-filter-panel { inset: 0 auto 0 0 !important; max-width: 460px !important; }}}

/* Keep map results, filter sheets, and horizontal chips scrollable without visible bars. */
body[data-discovery-map],
body[data-discovery-map] * {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body[data-discovery-map]::-webkit-scrollbar,
body[data-discovery-map] *::-webkit-scrollbar {
  display: none !important;
}

/* The canvas is transparent outside the globe. Match the surrounding theme. */
body[data-discovery-map] #map { background: #dbe7f0; }
html[data-theme="dark"] body[data-discovery-map] #map { background: #080d17; }

@layer discovery-map.shell {
  /* Keep each result section in normal flow inside the shared scrolling panel. */
  body[data-discovery-map] .template-results > :is(.template-results-list,.map-place-results,#discoveryMapPagination) { flex: 0 0 auto !important; }
  body[data-discovery-map] .map-place-cards { container: q-cards / inline-size; }
  body[data-discovery-map="places"] .discovery-result-card > .map-preview-card,
  body[data-discovery-map] .map-place-cards .discovery-result-card > .map-preview-card {
    grid-template-columns: minmax(96px,28%) minmax(0,1fr) !important;
    min-height: 160px !important;
  }
  body[data-discovery-map="places"] .discovery-result-card .map-preview-placeholder,
  body[data-discovery-map] .map-place-cards .map-preview-placeholder { min-height: 0 !important; }
}

/* Stays desktop results use the list card layout even in a narrower map column.
   Scoped to the results list: hotel map popups and other discovery types are untouched. */
@layer discovery-map {
  @media (min-width: 1100px) {
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-result-card,.discovery-result-card > .map-preview-card) { grid-template-columns: 200px minmax(0,1fr) !important; min-height: 286px !important; height: 286px !important; max-height: 286px !important; padding: 0 !important; }
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-card-media,.discovery-result-card .map-preview-image) { border-radius: 0 !important; }
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-card-body,.discovery-result-card .map-preview-content) { padding: 14px 14px 12px 16px !important; gap: 12px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-result-card .hotel-card-body { display: grid !important; grid-template-columns: minmax(0,1fr) 200px !important; grid-template-rows: auto 1fr !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-main { grid-column: 1 !important; grid-row: 1 / 3 !important; }
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-card-title,.discovery-result-card .map-preview-name) { font-size: 18px !important; }
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-card-location,.hotel-card-distance) { font-size: 14px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-review-summary { grid-column: 2 !important; grid-row: 1 !important; grid-template-columns: minmax(0,1fr) 32px !important; grid-template-rows: auto auto !important; text-align: right !important; justify-self: end !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-review-summary strong { grid-column: 2 !important; grid-row: 1 / 3 !important; width: 32px !important; height: 32px !important; font-size: 14px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-review-summary > span { grid-column: 1 !important; grid-row: 1 !important; font-size: 14px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-review-summary small { grid-column: 1 !important; grid-row: 2 !important; font-size: 13px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-booking { grid-column: 2 !important; grid-row: 2 !important; align-self: end !important; gap: 6px !important; }
    body[data-discovery-map="stays"] .template-results-list .hotel-card-price strong { font-size: 25px !important; }
    body[data-discovery-map="stays"] .template-results-list :is(.hotel-card-saving-badge,.hotel-card-stay-meta,.hotel-card-reference-price) { font-size: 12px !important; }}
}

/* Persistent discovery controls beside 3D on every map, independent of results/cards. */
@layer discovery-map {
  body[data-discovery-map] .map-discovery-modes { position:absolute!important;z-index:40!important;top:218px!important;right:12px!important;display:grid!important;gap:8px!important; }
  body[data-discovery-map] .map-discovery-mode { display:grid!important;place-items:center!important;width:44px!important;height:44px!important;min-height:44px!important;padding:10px!important;border:1px solid var(--q-line)!important;border-radius:8px!important;background:var(--q-surface)!important;color:var(--q-ink)!important;text-decoration:none!important; }
  body[data-discovery-map] .map-discovery-mode svg { display:block;width:22px;height:22px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
  body[data-discovery-map] .map-discovery-mode[data-map-mode="stays"][aria-current="page"] { background:#3555cd!important;border-color:#3555cd!important;color:white!important; }
  body[data-discovery-map] .map-discovery-mode[data-map-mode="places"][aria-current="page"] { background:#14532d!important;border-color:#14532d!important;color:white!important; }
  body[data-discovery-map] .map-discovery-mode[data-map-mode="networks"][aria-current="page"] { background:var(--q-blue)!important;border-color:var(--q-blue)!important;color:white!important; }
  body[data-discovery-map] .map-discovery-mode:focus-visible { outline:3px solid var(--q-blue)!important;outline-offset:3px!important; }
}
