/* Geographic browsing is a location-specific composition. Navigation, entity
   names, search and disclosure controls retain their shared component roles. */
.location-toolbar { display:flex; align-items:center; gap:1.5rem; padding:0 0 1.25rem; border-bottom:1px solid var(--entity-rule); }
.location-search { width:min(25rem,65%); min-width:0; margin-left:auto; }
.location-browser { display:grid; grid-template-columns:12rem minmax(0,1fr); gap:2.5rem; }
.location-navigation { min-width:0; padding:1.5rem 1rem 0 0; border-right:1px solid var(--entity-rule); }
.location-region-switch { display:none; flex:0 0 auto; gap:.25rem; }
.location-region__heading { display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; min-width:0; }
.location-region__heading > h2 { min-width:0; }
.location-nav-group + .location-nav-group { margin-top:.5rem; }
.location-nav-group > h2 { margin:0; }
.location-nav-group > h2 > button { width:100%; }
.location-nav-group__regions { display:none; }
.location-nav-group.is-expanded > .location-nav-group__regions { display:block; }
.location-regions { display:grid; align-content:start; gap:2rem; min-width:0; padding-top:1.5rem; }
.location-region { min-width:0; }
.location-region__header { margin-bottom:1.5rem; }
.location-region__header h2,.location-search-title { margin:0; color:var(--text); font-size:var(--lu4-type-section-title-size); font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.location-region__header h2 a { color:inherit; text-decoration:none; }
.location-region__header h2 a:hover { color:var(--link-hover); }
.location-region__header p { margin:.25rem 0 0; color:var(--text-muted); font-size:var(--lu4-type-ui-size); line-height:1.5; overflow-wrap:anywhere; }
.location-region__header .location-region__context { display:none; margin:0 0 .375rem; font-size:var(--lu4-type-label-size); }
.location-regions--search .location-region__context { display:block; }
.location-region__columns { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:2.5rem; align-items:start; }
.location-region__columns > div { min-width:0; }
.location-region__columns--single { grid-template-columns:minmax(0,1fr); }
.location-region__columns--single:has(> .location-region__aux) { max-width:34rem; }
.location-bucket { min-width:0; margin-bottom:1.75rem; }
.location-bucket h3 { display:flex; align-items:center; gap:.75rem; margin:0 0 .5rem; color:var(--text-muted); font-size:var(--lu4-type-ui-size); line-height:1.5; font-weight:500; }
.location-bucket h3::after { content:""; flex:1; height:1px; background:var(--entity-rule); }
.location-entries { display:grid; gap:.25rem; list-style:none; margin:0; padding:0; min-width:0; }
.location-entry { min-width:0; padding:.5rem 0; }
.location-subareas { margin:.75rem 0 .25rem; padding-left:1rem; border-left:1px solid var(--entity-rule); }
.location-subareas[hidden] { display:none; }
.location-regions--search > .location-region + .location-region { padding-top:1.5rem; border-top:1px solid var(--entity-rule); }
@media(min-width:1280px) {
  .location-region__columns { grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:2rem; }
  .location-region__columns--single { grid-template-columns:minmax(0,1fr); }
  .location-region__main > .location-bucket > .location-entries { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2rem; align-items:start; }
}
@media(max-width:959px) {
  .location-toolbar { padding-bottom:1rem; }
  .location-browser { grid-template-columns:minmax(0,1fr); gap:0; }
  .location-navigation { display:none; }
  .location-region-switch { display:inline-flex; }
  .location-region__header .location-region__context { display:block; }
  .location-regions { padding-top:1.25rem; }
}
@media(max-width:639px) {
  .location-toolbar { flex-wrap:wrap; gap:.75rem; }
  /* Retain the page heading for assistive technology, without a separate
     mobile title row above the already self-labelled location search. */
  .location-toolbar > .gear-results-identity { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .location-search { flex-basis:100%; width:100%; }
  .location-region__columns { grid-template-columns:minmax(0,1fr); gap:0; }
  .location-region__header { margin-bottom:1.25rem; }
  .location-bucket { margin-bottom:1.25rem; }
  .location-entry { padding:.375rem 0; }
  .location-subareas { padding-left:.75rem; }
}

/* Only geographic selection lives in this sheet; the result list stays in place. */
.location-picker { position:fixed; inset:auto 0 var(--shell-visual-bottom, 0px); box-sizing:border-box; width:min(100% - 1rem,34rem); max-width:none; max-height:min(78svh,calc(var(--shell-visual-height,100svh) - 1rem)); margin:0 auto; padding:1rem 1rem max(1rem,env(safe-area-inset-bottom)); overflow:hidden; }
.location-picker[open] { display:grid; grid-template-rows:auto minmax(0,1fr); gap:.75rem; }
.location-picker::backdrop { background:var(--lu4-modal-backdrop); -webkit-backdrop-filter:var(--lu4-modal-backdrop-filter); backdrop-filter:var(--lu4-modal-backdrop-filter); }
.location-picker__body { overflow:auto; overscroll-behavior:contain; min-height:0; }
.location-picker__section + .location-picker__section { margin-top:.5rem; }
.location-picker__section > summary { min-height:2.5rem; box-sizing:border-box; padding:.5rem 2rem .5rem .5rem; font-size:var(--lu4-type-body-size); line-height:1.5; color:var(--text-secondary); }
.location-picker__section .wb-catalog-nav__items { padding:.25rem .5rem .75rem; }
.location-picker__section .wb-catalog-nav__item { width:100%; overflow-wrap:anywhere; }
