/* Shared discovery-map structure. The control band never participates in the pane grid. */
[data-map-filter-shell] { position: relative; }
.half-map-shell,
.nwmap-page {
  --discovery-map-control-height: 36px;
  --discovery-map-control-radius: 10px;
}

/* One map-shell geometry: filters, chips and search fields are peers of the
   primary Search action, not smaller secondary controls. */
.half-map-shell .template-field,
.half-map-shell .template-select,
.nwmap-filterbar .template-field,
.nwmap-filterbar .template-select {
  height: var(--discovery-map-control-height) !important;
  min-height: var(--discovery-map-control-height) !important;
  border-radius: var(--discovery-map-control-radius) !important;
}

.half-map-shell .template-search-btn,
.nwmap-filterbar .template-search-btn,
[data-map-filter-shell] .qualoo-map-filter-toggle,
[data-map-filter-shell] .map-label-chip {
  height: var(--discovery-map-control-height) !important;
  min-height: var(--discovery-map-control-height) !important;
  border-radius: var(--discovery-map-control-radius) !important;
}

.stays-map-control-band .hotel-search-field,
.stays-map-control-band .hotel-search-submit {
  height: var(--discovery-map-control-height) !important;
  min-height: var(--discovery-map-control-height) !important;
  border-radius: var(--discovery-map-control-radius) !important;
}

/* Compact the Stays search-field copy without changing the control geometry. */
.stays-map-control-band .hotel-search-field > span {
  font-size: 8px !important;
  line-height: 1 !important;
}
.stays-map-control-band .hotel-search-field :is(input, select, .search-field-trigger, .search-field-trigger strong) {
  font-size: 11px !important;
  line-height: 1.05 !important;
}

[data-map-filter-shell] .map-view-toggle,
.stays-map-control-band .map-view-toggle,
.nwmap-view-toggle {
  height: var(--discovery-map-control-height) !important;
  min-height: var(--discovery-map-control-height) !important;
  border-radius: var(--discovery-map-control-radius) !important;
}
.qualoo-map-filter-toggle { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 12px; border:1px solid var(--line, #d7dce5); border-radius:10px; background:var(--surface, #fff); color:var(--text, #14132e); font:700 .82rem/1 DM Sans, system-ui, sans-serif; cursor:pointer; }
.qualoo-map-filter-toggle:hover { background:var(--bg, #f6f7fb); }
.qualoo-map-filter-toggle:focus-visible, .qualoo-map-filter-close:focus-visible { outline:3px solid rgba(47,128,237,.38); outline-offset:2px; }
.qualoo-map-filter-close { display:none; }
@media (min-width:981px) {
  /* Match the Networks map: the filters remain the first grid track while
     sliding out, then the results and map retain their own stable tracks. */
  [data-map-filter-shell] .half-map-inner {
    grid-template-columns:290px minmax(340px,42%) minmax(0,1fr) !important;
    transition:grid-template-columns 720ms cubic-bezier(.16,1,.3,1) !important;
  }
  [data-map-filter-shell] .qualoo-map-filter-sidebar {
    overflow:hidden !important;
    will-change:transform,opacity;
    transition:opacity 520ms cubic-bezier(.16,1,.3,1),transform 720ms cubic-bezier(.16,1,.3,1) !important;
  }
  [data-map-filter-shell].is-filters-collapsed .qualoo-map-filter-sidebar,
  [data-map-filter-shell].is-filters-collapsed .template-filters.hotel-filter-panel.qualoo-map-filter-sidebar {
    display:block !important;
    min-width:0 !important;
    overflow:hidden !important;
    opacity:0 !important;
    transform:translateX(calc(-100% - 12px)) !important;
    pointer-events:none !important;
  }
  [data-map-filter-shell] .half-map-inner.is-sidebar-collapsed {
    grid-template-columns:0px minmax(340px,42%) minmax(0,1fr) !important;
  }
  [data-map-filter-shell] .half-map-inner.is-sidebar-collapsed .template-results { grid-column:2 !important; }
  [data-map-filter-shell] .half-map-inner.is-sidebar-collapsed .template-map { grid-column:3 !important; }
  [data-map-filter-shell].is-filters-collapsed .nwmap-shell { grid-template-columns:0 minmax(340px,42%) minmax(0,1fr) !important; }
  [data-map-filter-shell].is-filters-collapsed .nwmap-results-panel { display:block !important; grid-column:2 !important; }
  [data-map-filter-shell].is-filters-collapsed .nwmap-map { display:block !important; grid-column:3 !important; }
}
@media (max-width:980px) {
  /* Map routes are map-first on phones. Their separate List route owns results. */
  [data-map-filter-shell] .template-results { display:none !important; }
  [data-map-filter-shell] .qualoo-map-filter-sidebar { display:none !important; }
  [data-map-filter-shell].is-filters-open .qualoo-map-filter-sidebar { position:fixed !important; z-index:1400 !important; inset:0 !important; display:block !important; width:auto !important; max-width:none !important; height:100dvh !important; max-height:none !important; margin:0 !important; padding:20px 16px calc(24px + env(safe-area-inset-bottom)) !important; overflow-y:auto !important; border:0 !important; border-radius:0 !important; background:var(--bg, #f6f7fb) !important; box-shadow:none !important; opacity:1 !important; transform:none !important; pointer-events:auto !important; }
  [data-map-filter-shell].is-filters-open .qualoo-map-filter-close { display:inline-flex; position:sticky; top:0; float:right; align-items:center; justify-content:center; min-height:38px; padding:0 12px; border:1px solid var(--line, #d7dce5); border-radius:10px; background:var(--surface, #fff); color:var(--text, #14132e); font:700 .82rem/1 inherit; cursor:pointer; }
  body.qualoo-map-filters-open { overflow:hidden; }
}
