.place-search-shell {
  display: grid;
  gap: var(--space-2);
}

.location-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.current-location-button{min-height:var(--tap-min);padding:8px 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--color-secondary) 48%,transparent);background:transparent;color:var(--color-secondary-soft);font-weight:600;cursor:pointer}
.current-location-button:focus-visible{outline:1px solid var(--color-focus);outline-offset:3px}
.current-location-button:disabled{opacity:.5;cursor:wait}
.location-or{color:var(--color-text-subtle);font-size:13px}

.place-autocomplete-mount {
  min-height: var(--control-min);
}

.place-autocomplete-mount gmp-place-autocomplete {
  width: 100%;
  font: inherit;
  --gmpx-color-surface: var(--color-surface);
  --gmpx-color-on-surface: var(--color-text);
  --gmpx-color-primary: var(--color-primary);
}

.place-search-status {
  margin: 0;
  color: var(--color-text-subtle);
  font-size: var(--type-xs);
  line-height: 1.45;
}

.selected-place-card {
  display: grid;
  gap: 5px;
  padding: 14px 0;
  border: 0;
  border-top: 1px solid var(--color-primary-soft);
  background: transparent;
}

.selected-place-card > span {
  color: var(--color-primary);
  font-size: var(--type-xs);
  font-weight: var(--font-semibold);
  letter-spacing: .04em;
}

.selected-place-card strong {
  color: var(--color-text);
  font-size: 17px;
  font-weight: var(--font-medium);
}

.selected-place-card p {
  margin: 0;
  color: var(--color-text-subtle);
  font-size: 14px;
  line-height: 1.45;
}

.plain-location-fallback input {
  width: 100%;
  min-height: var(--control-min);
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 20%, transparent);
  border-radius: var(--radius-none);
  background: transparent;
  color: var(--color-text);
  font-size: var(--type-body);
  outline: none;
}

.plain-location-fallback input {
  text-transform: lowercase;
}

.plain-location-fallback input:focus {
  border-color: var(--color-focus);
  box-shadow: 0 10px 20px -18px color-mix(in srgb, var(--color-primary) 90%, transparent);
}

#place-autocomplete-mount.index-place-results {
  display: grid;
  gap: 0;
  margin-top: .35rem;
}

#place-autocomplete-mount.index-place-results:empty {
  display: none;
}

.index-place-result {
  display: block;
  width: 100%;
  min-height: var(--tap-min);
  padding: 9px 2px;
  border: 0;
  border-bottom: 1px solid var(--color-line-soft);
  background: transparent;
  color: inherit;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}

.index-place-result strong {
  display: block;
  color: var(--color-text-strong);
  font-size: var(--type-body);
  font-weight: var(--font-semibold);
  line-height: 1.2;
  text-transform: lowercase;
}

.index-place-result small {
  display: block;
  margin-top: var(--space-1);
  color: color-mix(in srgb, var(--color-text) 52%, transparent);
  font-size: .8rem;
  line-height: 1.25;
  text-transform: lowercase;
}

.index-place-google {
  display: flex;
  justify-content: flex-start;
  padding: .55rem 2px .1rem;
  color: color-mix(in srgb, var(--color-text) 35%, transparent);
  font-size: .68rem;
}

/* Google requires the unmodified asset at a legible size. No recolouring,
   no filters, no opacity that would compromise legibility. */
.index-place-google img {
  display: block;
  width: 144px;
  height: 18px;
  filter: none;
  opacity: 1;
}

/* Issue #97/8: while the iPhone keyboard is open, keep the live Places list
   in the visible pane above the focused search field instead of letting the
   results grow downward behind the keyboard. The keyboard inset is already
   maintained by mobile-ux; this only changes presentation order. */
@media (max-width: 700px) {
  /* Keep the focused field where the guest put it. Reordering the live result
     list above a sticky input made iOS Safari feel like Google had taken over
     the field and caused visual-viewport jumps while typing. */
  html[data-keyboard-open] #step-options #location-wrap:has(#place-autocomplete-mount.index-place-results) .plain-location-fallback {
    order: 1;
    position: relative;
    z-index: 4;
    background: var(--color-canvas);
  }

  html[data-keyboard-open] #step-options #location-wrap:has(#place-autocomplete-mount.index-place-results) .place-search-shell {
    order: 2;
    max-height: min(34svh, 18rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  html[data-keyboard-open] #place-autocomplete-mount.index-place-results {
    margin-top: 0;
  }
}
