/* Location button inside a postcode field (see location-button.js). Colours follow the input's text colour. */
.nl-bfe-locate-wrap { position: relative; display: flex; width: 100%; max-width: 100%; }
.nl-bfe-locate-wrap > .nl-bfe-locate-input { flex: 1 1 auto; width: 100%; min-width: 0; padding-right: 46px; box-sizing: border-box; }
.nl-bfe-locate-button {
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; margin: 0; padding: 0;
  background: transparent; border: 0; border-radius: 4px; box-shadow: none;
  color: inherit; opacity: .7; cursor: pointer; line-height: 1;
}
.nl-bfe-locate-button:hover { opacity: 1; background: transparent; }
.nl-bfe-locate-button:focus { outline: none; }
.nl-bfe-locate-button:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.nl-bfe-locate-button:disabled { cursor: wait; }
.nl-bfe-locate-button.is-busy { opacity: 1; animation: nl-bfe-locate-pulse 1s ease-in-out infinite; }
.nl-bfe-locate-message { display: block; margin-top: 6px; font-size: .85em; line-height: 1.4; }
.nl-bfe-locate-message[hidden] { display: none; }
@keyframes nl-bfe-locate-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nl-bfe-locate-button.is-busy { animation: none; } }
