/* A fixed crossfade surface; both views remain at their natural position. */
.region-dialog.is-city-travel { position: fixed; inset: 0; width: 100%; height: 100%; width: 100dvw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; border-radius: 0; overflow: hidden; background: transparent; box-shadow: none; animation: none; transform: none; }
.region-dialog.is-city-travel::backdrop { background: transparent; backdrop-filter: none; }
/* Children with visibility:visible can escape an ancestor's visibility:hidden.
   Fade the original subtree to zero as well, so its city labels cannot bleed
   through when the search appears. The separate animated copy is excluded. */
.region-dialog.is-city-travel > :not(.map-journey) { visibility: hidden; opacity: 0; pointer-events: none; }
.region-dialog.is-city-travel > :not(.map-journey) :is(.region-map-labels,.region-label-connectors) { visibility: hidden; pointer-events: none; }
.map-journey { position: fixed; inset: 0; overflow: hidden; color: #fff; pointer-events: none; isolation: isolate; }
.map-journey[hidden] { display: none; }
.map-journey-veil { position: absolute; inset: 0; background: #07130df5; }
.map-journey-origin { position: absolute; overflow: hidden; border-radius: 20px; }
.map-journey-origin-copy.region-dialog { display: block; position: static; width: 100%; height: 100%; max-height: none; max-width: none; margin: 0; box-sizing: border-box; overflow: hidden; pointer-events: none; animation: none; transform: none; }
/* Keep the clicked view intact until movement begins, including its labels. */
.region-dialog[aria-busy="true"] :is(.region-map-labels,.region-label-connectors) { visibility: visible; }
.map-journey-heading { position: absolute; top: max(6svh,24px); left: 50%; translate: -50% 0; width: max-content; max-width: calc(100% - 40px); padding: 14px 24px; border-radius: 18px; background: #112c23e8; text-align: center; opacity: 0; }
.map-journey-heading p { margin: 0 0 6px; font: 600 .875rem/1.4 var(--body,sans-serif); color: #e0f5c9; }
.map-journey-heading h2 { margin: 0; color: #fff; font: 750 clamp(2rem,6vw,4rem)/1.12 var(--heading,sans-serif); letter-spacing: -.035em; overflow-wrap: anywhere; }
.map-journey-skip { position: absolute; bottom: max(24px,calc(env(safe-area-inset-bottom) + 16px)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 48px; width: max-content; max-width: calc(100% - 32px); padding: 12px 20px; border: 1px solid #d2e9b199; border-radius: 999px; background: #152c20e8; color: #f5ffe9; font: 600 1rem/1.4 var(--body,sans-serif); cursor: pointer; pointer-events: auto; }
.map-journey-skip:focus-visible { outline: 3px solid #cfec94; outline-offset: 4px; }
.city-journey-running { overflow: hidden; }
.map-journey-arriving { opacity: 0; will-change: opacity; }
.ge-city-search .finder-search-card { border-top-color: #b0d957; }
.ge-city-search .finder-card-heading { position: relative; padding-bottom: 24px; background: #14271b; }
.ge-city-search .finder-card-heading .section-kicker { color: #cfec94; }
.ge-city-search .finder-card-heading h2 { max-width: 22ch; font-size: clamp(1.6rem,2.5vw,2.2rem); }
.ge-city-search .finder-card-heading p:last-child { max-width: 48ch; margin-bottom: 0; }
.ge-city-search .finder-field input:focus,.ge-city-search .finder-house-control:focus-within { border-color: #b0d957; }
@media (max-width:700px) {
  .map-journey-heading h2 { font-size: clamp(1.75rem,8vw,3rem); }
  .ge-city-search .finder-card-heading { padding: 18px; }
  .ge-city-search .finder-card-heading h2 { font-size: 1.45rem; margin-block: 8px; }
  .ge-city-search .finder-card-heading p:last-child { font-size: .9375rem; line-height: 1.45; }
}
@media (prefers-reduced-motion:reduce) { .map-journey-arriving { will-change: auto; } }
