/* eetZA Address Picker V2 — one authoritative saved-address and map dialog. */
html.location-modal-open,
body.location-modal-open {
  overflow: hidden !important;
}

.location-modal.location-v2 {
  position: fixed !important;
  inset: 0 !important;
  z-index: 6200 !important;
  display: none !important;
  padding: 16px !important;
  overflow: hidden !important;
}

.location-modal.location-v2.is-open {
  display: grid !important;
  place-items: center !important;
}

.location-v2 .location-modal-backdrop {
  position: absolute !important;
  inset: 0 !important;
  border: 0 !important;
  background: rgba(24, 21, 18, .50) !important;
  -webkit-backdrop-filter: blur(7px) !important;
  backdrop-filter: blur(7px) !important;
}

.location-v2 .location-v2-panel {
  --location-v2-canvas: #f4f1ec;
  --location-v2-paper: #fffdfa;
  --location-v2-ink: #181512;
  --location-v2-muted: #817c75;
  --location-v2-line: rgba(23, 20, 18, .10);
  --location-v2-red: var(--color-brand);
  position: relative !important;
  inset: auto !important;
  box-sizing: border-box !important;
  width: min(560px, calc(100vw - 32px)) !important;
  max-height: min(760px, calc(100dvh - 32px)) !important;
  margin: 0 !important;
  padding: 20px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  border: 1px solid rgba(23, 20, 18, .06) !important;
  border-radius: 28px !important;
  background: var(--location-v2-canvas) !important;
  color: var(--location-v2-ink) !important;
  box-shadow: 0 24px 70px rgba(24, 21, 18, .22) !important;
  transform: none !important;
  overscroll-behavior: contain !important;
}

/* Keep V2 centred even when older compact-modal rules are present upstream. */
.location-modal.location-v2.is-open > .location-modal-panel.location-v2-panel {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
}

.location-v2 .location-modal-header {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin: 0 0 18px !important;
}

.location-v2 .location-modal-header h2 {
  margin: 0 !important;
  color: var(--location-v2-ink) !important;
  font-size: 27px !important;
  font-weight: 600 !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
}

.location-v2 .location-modal-header .muted {
  margin: 6px 0 0 !important;
  color: var(--location-v2-muted) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  white-space: normal !important;
}

.location-v2 .modal-close {
  display: grid !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  place-items: center !important;
  margin: -4px -4px 0 0 !important;
  padding: 0 !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: 50% !important;
  background: var(--location-v2-paper) !important;
  color: var(--location-v2-ink) !important;
  box-shadow: 0 3px 12px rgba(29, 25, 20, .06) !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

.location-v2-saved {
  margin: 0 !important;
}

.location-v2-section-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 2px 10px !important;
}

.location-v2-section-heading h3 {
  margin: 0 !important;
  color: var(--location-v2-ink) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

.location-v2-section-heading a {
  color: var(--location-v2-red) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.location-v2-saved-list {
  display: grid !important;
  gap: 8px !important;
  max-height: 260px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-width: thin !important;
}

.location-v2-address-form {
  margin: 0 !important;
}

.location-v2-address {
  display: grid !important;
  grid-template-columns: 38px minmax(0, 1fr) auto !important;
  gap: 11px !important;
  width: 100% !important;
  min-height: 64px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 10px 13px !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: 18px !important;
  background: var(--location-v2-paper) !important;
  color: var(--location-v2-ink) !important;
  box-shadow: 0 2px 10px rgba(29, 25, 20, .04) !important;
  text-align: left !important;
}

.location-v2-address.is-current {
  border-color: rgba(57, 122, 89, .22) !important;
  background: #f2f8f4 !important;
}

.location-v2-pin {
  display: grid !important;
  width: 38px !important;
  height: 38px !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: #eeeae4 !important;
  color: #5f5a54 !important;
}

.location-v2-address.is-current .location-v2-pin {
  background: #deeee5 !important;
  color: #397a59 !important;
}

.location-v2-pin svg {
  width: 19px !important;
  height: 19px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.location-v2-address-copy {
  display: grid !important;
  min-width: 0 !important;
  gap: 2px !important;
}

.location-v2-address-copy strong,
.location-v2-address-copy small {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.location-v2-address-copy strong {
  color: var(--location-v2-ink) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.location-v2-address-copy small {
  color: var(--location-v2-muted) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

.location-v2-address-state {
  color: #9a948d !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}

.location-v2-address.is-current .location-v2-address-state {
  color: #397a59 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

.location-v2-empty {
  padding: 16px !important;
  border-radius: 16px !important;
  background: rgba(255, 253, 250, .65) !important;
  color: var(--location-v2-muted) !important;
  font-size: 13px !important;
  text-align: center !important;
}

.location-v2-map-toggle {
  display: flex !important;
  width: 100% !important;
  min-height: 48px !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 14px 0 0 !important;
  padding: 0 16px !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: 18px !important;
  background: var(--location-v2-paper) !important;
  color: var(--location-v2-ink) !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: left !important;
}

.location-v2-map-toggle > span:last-child {
  font-size: 21px !important;
  font-weight: 400 !important;
  transition: transform .18s ease !important;
}

.location-v2-map-toggle.is-open > span:last-child {
  transform: rotate(45deg) !important;
}

.location-v2-map-editor[hidden] {
  display: none !important;
}

.location-v2-map-editor {
  display: block !important;
  margin-top: 10px !important;
  padding: 14px !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: 20px !important;
  background: var(--location-v2-paper) !important;
}

.location-v2 .eetza-location-picker-label,
.location-v2 .eetza-location-provider-note {
  display: none !important;
}

.location-v2 .location-picker,
.location-v2 .header-location-form {
  margin: 0 !important;
}

.location-v2 .location-picker {
  display: grid !important;
  gap: 10px !important;
}

.location-v2 .eetza-location-search-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 62px !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 0 !important;
}

.location-v2 .eetza-location-search-input,
.location-v2 .eetza-location-find-button {
  box-sizing: border-box !important;
  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;
  margin: 0 !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: var(--eetza-pill-radius, 12px) !important;
  box-shadow: none !important;
}

.location-v2 .eetza-location-search-input {
  min-width: 0 !important;
  padding: 0 38px 0 13px !important;
  background: var(--location-v2-canvas) !important;
  color: var(--location-v2-ink) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
}

.location-v2 .eetza-location-find-button {
  padding: 0 10px !important;
  background: var(--location-v2-ink) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.location-v2 .location-search-clear {
  right: 5px !important;
  color: #817c75 !important;
}

.location-v2 .address-suggestions {
  max-height: 150px !important;
  margin: 0 !important;
  padding: 5px !important;
  overflow-y: auto !important;
  border: 1px solid var(--location-v2-line) !important;
  border-radius: 14px !important;
  background: var(--location-v2-canvas) !important;
}

.location-v2 .address-suggestions[hidden] {
  display: none !important;
}

.location-v2 .location-map,
.location-v2 [data-location-map] {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 100% !important;
  height: 190px !important;
  min-height: 190px !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: #e8e4de !important;
}

.location-v2 .leaflet-control-zoom {
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 13px !important;
  box-shadow: 0 3px 12px rgba(29, 25, 20, .12) !important;
}

.location-v2 .leaflet-control-zoom a {
  width: 32px !important;
  height: 32px !important;
  border-color: var(--location-v2-line) !important;
  background: var(--location-v2-paper) !important;
  color: var(--location-v2-ink) !important;
  line-height: 32px !important;
}

.location-v2 .location-actions-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin: 0 !important;
}

.location-v2 .location-actions-row .text-link {
  width: auto !important;
  padding: 0 !important;
  color: var(--location-v2-red) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.location-v2 .location-actions-row .small-note {
  color: var(--location-v2-muted) !important;
  font-size: 11px !important;
}

.location-v2 .location-modal-actions {
  display: block !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.location-v2 .location-modal-actions .btn {
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: var(--eetza-pill-radius, 12px) !important;
  background: var(--location-v2-ink) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

@media (max-width: 600px) {
  .location-modal.location-v2 {
    padding: 10px !important;
  }

  .location-v2 .location-v2-panel {
    width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    padding: 17px !important;
    border-radius: 24px !important;
  }

  .location-v2 .location-modal-header h2 {
    font-size: 24px !important;
  }

  .location-v2-saved-list {
    max-height: 220px !important;
  }

  .location-v2 .location-map,
  .location-v2 [data-location-map] {
    height: 172px !important;
    min-height: 172px !important;
  }
}

@media (max-height: 700px) {
  .location-v2 .location-v2-panel {
    max-height: calc(100dvh - 16px) !important;
    padding: 15px !important;
  }

  .location-v2-saved-list {
    max-height: 170px !important;
  }

  .location-v2 .location-map,
  .location-v2 [data-location-map] {
    height: 145px !important;
    min-height: 145px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .location-v2-map-toggle > span:last-child {
    transition: none !important;
  }
}
