/** Shopify CDN: Minification failed

Line 1059:37 Expected "]" to go with "["
Line 1059:49 Unexpected "]"

**/
/* ============================================================
   Store Locator V3  –  section-locations-v3.css
   Class prefix: lv3__*
   Breakpoint: 960px (two-column hero + split body)
   A/B Test variant — do not modify section-locations.css or section-locations-v2.css.
   ============================================================ */

/* ----------------------------------------------------------
   1. Tokens
   ---------------------------------------------------------- */
/* Suppress browser-default focus ring on the custom element container —
   it's a layout wrapper, not an interactive element. Focus rings on the
   interactive children (inputs, buttons, links) are unaffected. */
locations-v3-section:focus {
  outline: none;
}

.lv3 {
  --lv3-cobalt:      #4063e7;
  --lv3-cobalt-dark: #2e4fcc;
  --lv3-navy:        #162457;
  --lv3-ink:         #1a1a1a;
  --lv3-body:        #4a4a4a;
  --lv3-muted:       #6b6b6b;
  --lv3-line:        rgba(175, 187, 235, 0.35);
  --lv3-mist:        rgba(175, 187, 235, 0.14);
  --lv3-mist-deep:   rgba(175, 187, 235, 0.55);
  --lv3-green:       #2a9d6a;
  --lv3-green-bg:    rgba(42, 157, 106, 0.1);
  --lv3-amber:       #c97600;
  --lv3-amber-bg:    rgba(201, 118, 0, 0.1);
  --lv3-gray-bg:     rgba(175, 187, 235, 0.18);
  --lv3-radius-card: 12px;
  --lv3-radius-btn:  8px;

  display: block;
  overflow: clip; /* allows position:sticky without creating a scroll container */
}

/* ----------------------------------------------------------
   2. Hero strip
   ---------------------------------------------------------- */
.lv3__hero {
  background: #fff;
  border-bottom: 1px solid var(--lv3-line);
  padding: 20px 18px 16px;
}

@media (min-width: 960px) {
  .lv3__hero {
    /* Remove left padding — search column starts flush with list column below.
       Right padding retained for SEO column breathing room. */
    padding: 28px 32px 24px 0;
  }
}

.lv3__hero-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (min-width: 960px) {
  .lv3__hero-inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 0;
    /* Body columns are full-width (no centering) — match that here */
    max-width: none;
    margin: 0;
  }
}

/* ----------------------------------------------------------
   3. Hero left: H1 + search + geo link
   ---------------------------------------------------------- */
.lv3__hero-search {
  flex: 0 0 auto;
  min-width: 0;
}

@media (min-width: 960px) {
  .lv3__hero-search {
    width: clamp(440px, 44vw, 560px);
    flex-shrink: 0;
    /* Left padding moves content away from edge while keeping column box
       flush-left — mirrors the list column's card padding below */
    padding-left: 32px;
    padding-right: 24px;
  }
}

.lv3__title {
  font-family: 'Garet Bold', sans-serif !important;
  /* Fluid: 21px at 375px (iPhone SE) → 26px at 464px+.
     At 375px the title needs ~330px; content area is 339px — just fits.
     At 26px it needs ~410px which overflows any phone narrower than ~446px. */
  font-size: clamp(21px, 5.6vw, 26px);
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--lv3-ink);
  margin: 0 0 14px;
}

@media (min-width: 960px) {
  .lv3__title {
    font-size: 27px;
    line-height: 34px;
    margin-bottom: 16px;
    white-space: nowrap !important; /* !important guards against theme h1 overrides */
    overflow: visible; /* let it extend into the SEO column gap if needed */
  }
}

/* Search input wrap: 52px tall, 12px radius */
.lv3__input-wrap {
  display: flex;
  align-items: center;
  height: 52px;
  border: 1.5px solid #1a1a1a;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  transition: border-color 0.15s, box-shadow 0.15s;
  padding-left: 14px;
}

.lv3__input-wrap:focus-within {
  border-color: var(--lv3-cobalt);
  border-width: 2px;
  box-shadow: 0 0 0 3px rgba(64, 99, 231, 0.1);
}

.lv3__input-icon {
  display: flex;
  align-items: center;
  color: var(--lv3-muted);
  margin-right: 10px;
  flex-shrink: 0;
}

.lv3__input {
  flex: 1;
  font-size: 15px;
  line-height: 1;
  color: var(--lv3-ink);
  border: none;
  outline: none;
  padding: 0;
  background: transparent;
  -webkit-appearance: none;
  min-width: 0;
}

.lv3__input::placeholder {
  color: #9a9a9a;
}

.lv3__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.lv3__submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 100%;
  padding: 0 18px;
  background: var(--lv3-cobalt);
  color: #fff;
  border: none;
  border-radius: 0 10px 10px 0;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 0.15s;
  white-space: nowrap;
}

.lv3__submit-btn:hover {
  background: var(--lv3-cobalt-dark);
}

/* Mobile: hide label text, show icon only — keeps placeholder fully visible */
@media (max-width: 959px) {
  .lv3__submit-btn {
    padding: 0 16px;
    min-width: 48px;
  }
  .lv3__submit-text {
    display: none;
  }
  /* Shrink input + placeholder text so the full hint fits on narrow screens */
  .lv3__input {
    font-size: 13px;
  }
  /* Scale dots to match the icon-only button width so there's no layout shift */
  .lv3__submit-dots {
    gap: 3px;
  }
  .lv3__submit-dots span {
    width: 5px;
    height: 5px;
  }
}

.lv3__submit-btn--loading {
  pointer-events: none;
  cursor: default;
}

/* Three bouncing dots shown inside the button while searching */
.lv3__submit-dots {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 14px;
}

.lv3__submit-dots span {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
  animation: lv3-dot-bounce 0.65s ease-in-out infinite;
}

.lv3__submit-dots span:nth-child(2) { animation-delay: 0.12s; }
.lv3__submit-dots span:nth-child(3) { animation-delay: 0.24s; }

@keyframes lv3-dot-bounce {
  0%, 80%, 100% { transform: translateY(0);    opacity: 0.5; }
  40%            { transform: translateY(-5px); opacity: 1;   }
}

/* "Use my current location" link */
.lv3__geo-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--lv3-cobalt);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.15s;
}

.lv3__geo-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}

/* Search error feedback message */
.lv3__search-msg {
  display: block;
  margin-top: 7px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--lv3-amber);
}

.lv3__search-msg:empty {
  display: none;
}

/* Geo permission feedback message */
.lv3__geo-msg {
  display: block;
  margin-top: 7px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--lv3-amber);
}

.lv3__geo-msg:empty {
  display: none;
}

/* ----------------------------------------------------------
   4. Hero right: SEO descriptor
   ---------------------------------------------------------- */
.lv3__hero-seo {
  flex: 1;
  min-width: 0;
}

@media (min-width: 960px) {
  .lv3__hero-seo {
    border-left: 3px solid var(--lv3-mist-deep);
    padding-left: 28px;
    margin-top: 6px; /* align with first text line */
  }
}

/* Mobile expander trigger — hidden on desktop */
.lv3__seo-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--lv3-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lv3__seo-chevron {
  transition: transform 0.2s;
  flex-shrink: 0;
}

.lv3__seo-trigger[aria-expanded="true"] .lv3__seo-chevron {
  transform: rotate(180deg);
}

@media (min-width: 960px) {
  .lv3__seo-trigger {
    display: none;
  }
}

/* SEO content: hidden on mobile until expanded, always visible on desktop */
.lv3__seo-content {
  display: none;
  margin-top: 10px;
}

.lv3__seo-content--open {
  display: block;
}

@media (min-width: 960px) {
  .lv3__seo-content {
    display: block;
    margin-top: 0;
  }
}

.lv3__seo-copy {
  font-size: 13px;
  line-height: 1.6;
  color: var(--lv3-body);
  margin: 0;
}

.lv3__seo-copy a {
  color: var(--lv3-cobalt);
  text-decoration: underline;
}

.lv3__seo-copy a:hover {
  text-decoration: none;
}

/* ----------------------------------------------------------
   5. Body: two-column flex layout
   ---------------------------------------------------------- */
.lv3__body {
  display: flex;
  flex-direction: column;
}

@media (min-width: 960px) {
  .lv3__body {
    flex-direction: row;
    align-items: flex-start;
    /* min-height: section is always at least one viewport tall, but grows with
       the clinic list — the sticky map rides alongside the scrolling list and
       the section below starts cleanly after the last card. */
    min-height: calc(100vh - var(--lv3-hero-h, 160px));
    min-height: calc(100dvh - var(--lv3-hero-h, 160px));
  }
}

/* ----------------------------------------------------------
   6. List column
   ---------------------------------------------------------- */
.lv3__col--list {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
}

@media (min-width: 960px) {
  .lv3__col--list {
    width: clamp(440px, 44vw, 560px);
    flex-shrink: 0;
    /* Natural height — the list grows to fit all clinic cards.
       The section height is determined by this column so the map
       sticks alongside it for the full scroll and the next section
       starts cleanly after the last card. */
  }
}

/* ----------------------------------------------------------
   7. Results bar
   ---------------------------------------------------------- */
.lv3__results-bar {
  padding: 12px 20px 10px;
  flex-shrink: 0;
}

@media (min-width: 960px) {
  .lv3__results-bar {
    padding: 12px 24px 10px;
  }
}

.lv3__results-count {
  font-size: 13px;
  font-weight: 700;
  line-height: 20px;
  color: var(--lv3-muted);
  text-transform: lowercase;
}

/* ----------------------------------------------------------
   8. List scroller
   ---------------------------------------------------------- */
.lv3__list-scroller {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  max-height: calc(100vh - 300px);
  max-height: calc(100dvh - 300px);
}

@media (min-width: 960px) {
  .lv3__list-scroller {
    /* Page scrolls through the clinic list — no internal column scroll on desktop */
    overflow: visible;
    max-height: none;
    padding-bottom: 32px;
  }
}

@media (max-width: 959px) {
  .lv3__list-scroller {
    padding-bottom: 80px; /* room for floating toggle */
  }
}

.lv3__list-scroller::-webkit-scrollbar {
  width: 4px;
}

.lv3__list-scroller::-webkit-scrollbar-track {
  background: var(--lv3-mist);
  border-radius: 4px;
}

.lv3__list-scroller::-webkit-scrollbar-thumb {
  background: var(--lv3-cobalt);
  border-radius: 4px;
  opacity: 0.5;
}

.lv3__list {
  list-style: none;
  margin: 0;
  padding: 16px 20px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

@media (min-width: 960px) {
  .lv3__list {
    padding: 20px 24px 0;
    gap: 14px;
  }
}

/* ----------------------------------------------------------
   9. Clinic card
   ---------------------------------------------------------- */
.lv3__location {
  position: relative;
  padding: 16px 18px 18px;
  border: 1px solid var(--lv3-line);
  border-radius: var(--lv3-radius-card);
  background: #fff;
  cursor: default;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.lv3__location:hover,
.lv3__location--active {
  border-color: rgba(64, 99, 231, 0.4);
  box-shadow: 0 2px 10px rgba(64, 99, 231, 0.08);
}

@media (min-width: 960px) {
  .lv3__location {
    padding: 18px 20px 20px;
  }
}

/* Preferred clinic highlight */
.lv3__location--preferred {
  background: rgba(64, 99, 231, 0.03);
  border-color: rgba(64, 99, 231, 0.3);
}

/* No-results / skeleton card */
.lv3__location--skeleton,
.lv3__location--no-results {
  cursor: default;
  color: var(--lv3-muted);
  padding: 32px 20px;
}

.lv3__location--skeleton:hover,
.lv3__location--no-results:hover {
  border-color: var(--lv3-line);
  box-shadow: none;
}

/* "CLOSEST TO YOU" badge — straddles the card's top border */
.lv3__closest-badge {
  position: absolute;
  top: 0;
  left: 18px;
  transform: translateY(-50%);
  padding: 3px 11px;
  background: var(--lv3-navy);
  color: #fff;
  border-radius: 40px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (min-width: 960px) {
  .lv3__closest-badge {
    left: 20px;
  }
}

/* Clinic name */
.lv3__location-name {
  font-family: 'Garet Bold', sans-serif !important;
  font-size: 16px;
  font-weight: 700;
  line-height: 22px;
  color: var(--lv3-ink);
  margin: 0 0 6px;
}

.lv3__location-name a {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  text-decoration: none;
}

.lv3__location-name a:hover {
  text-decoration: underline;
}

/* Address row: pin icon + address + distance inline */
.lv3__addr-row {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  margin-bottom: 5px;
}

.lv3__addr-pin {
  display: flex;
  align-items: center;
  color: var(--lv3-muted);
  flex-shrink: 0;
  margin-top: 2px;
}

.lv3__location-address {
  flex: 1;
  font-size: 13.5px;
  line-height: 20px;
  color: var(--lv3-body);
  min-width: 0;
}

.lv3__location-dist {
  flex-shrink: 0;
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
  color: var(--lv3-ink);
  margin-left: 6px;
}

/* Phone row */
.lv3__phone-row {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 5px;
  color: var(--lv3-muted);
}

.lv3__phone-link {
  font-size: 13.5px;
  line-height: 20px;
  color: var(--lv3-body);
  text-decoration: none;
}

.lv3__phone-link:hover {
  color: var(--lv3-cobalt);
  text-decoration: underline;
}

/* Hours row */
.lv3__hours-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  line-height: 20px;
  color: var(--lv3-body);
  margin-bottom: 12px;
}

.lv3__hours-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.lv3__hours-dot--open   { background: var(--lv3-green); }
.lv3__hours-dot--closed { background: #d64b4b; }

/* Divider between meta and badges */
.lv3__card-divider {
  border: none;
  border-top: 1px solid var(--lv3-line);
  margin: 10px 0 12px;
}

/* Availability / phone-only badge */
/* Availability slot wrapper — always reserves the same vertical space
   so the card height never shifts when async content arrives.
   For clinics with no result the placeholder is invisible but still occupies height. */
.lv3__avail-slot {
  min-height: 40px; /* placeholder height 26px + margin 14px */
  margin-bottom: 14px;
}

/* Skeleton placeholder shown while the API fetch is in flight */
.lv3__avail-placeholder {
  display: inline-flex;
  align-items: center;
  height: 26px;
  width: 200px;
  border-radius: 40px;
  background: rgba(175, 187, 235, 0.22);
  animation: lv3-avail-pulse 1.5s ease-in-out infinite;
}

.lv3__avail-placeholder--empty {
  /* Fetch resolved with no available slots — keep the space but invisible */
  opacity: 0;
  pointer-events: none;
}

@keyframes lv3-avail-pulse {
  0%, 100% { opacity: 0.35; }
  50%      { opacity: 0.85; }
}

.lv3__avail-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 40px;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 18px;
  /* margin-bottom handled by parent .lv3__avail-slot */
}

.lv3__avail-badge--soon {
  background: var(--lv3-green-bg);
  color: #1e7a52;
}

.lv3__avail-badge--soon .lv3__avail-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lv3-green);
}

.lv3__avail-badge--later {
  background: var(--lv3-gray-bg);
  color: var(--lv3-muted);
}

.lv3__avail-badge--phone {
  background: var(--lv3-amber-bg);
  color: var(--lv3-amber);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 11px;
}

/* Phone-only badge sits outside .lv3__avail-slot so it needs its own margin */
.lv3__avail-badge--phone-direct {
  margin-bottom: 14px;
}

/* Error / unavailable — no background, lighter text so it reads as secondary info */
.lv3__avail-badge--muted {
  background: transparent;
  color: #9a9a9a;
  font-size: 12px;
  padding-left: 0;
}

/* CTA buttons */
.lv3__location-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.lv3__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 9px 16px;
  border-radius: var(--lv3-radius-btn);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  border: 1.5px solid transparent;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap;
  flex: 1;
  min-width: 120px;
}

.lv3__btn--primary {
  background: var(--lv3-cobalt);
  color: #fff;
  border-color: var(--lv3-cobalt);
}

.lv3__btn--primary:hover {
  background: var(--lv3-cobalt-dark);
  border-color: var(--lv3-cobalt-dark);
}

.lv3__btn--outline {
  background: #fff;
  color: var(--lv3-cobalt);
  border-color: rgba(64, 99, 231, 0.4);
}

.lv3__btn--outline:hover {
  background: rgba(64, 99, 231, 0.05);
  border-color: var(--lv3-cobalt);
}

.lv3__btn-chevron {
  flex-shrink: 0;
  opacity: 0.8;
}

/* Preferred clinic label */
.lv3__location-pref {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  line-height: 20px;
  color: var(--lv3-cobalt);
  margin-bottom: 8px;
}

.lv3__location-pref::before {
  content: '';
  display: block;
  background: url('checked.svg') center / contain no-repeat;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* Make preferred button */
.lv3__make-preferred {
  font-size: 13px;
  line-height: 20px;
  color: var(--lv3-cobalt);
  text-decoration: underline;
  display: inline-block;
  margin-bottom: 10px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.lv3__make-preferred:hover { text-decoration: none; }

/* ----------------------------------------------------------
   10. Mobile: hide map column, show on toggle
   ---------------------------------------------------------- */
@media (max-width: 959px) {
  .lv3__col--map {
    display: none;
  }

  .lv3__body--map .lv3__col--map {
    display: block;
  }

  .lv3__body--map .lv3__col--list {
    display: none;
  }
}

/* ----------------------------------------------------------
   11. Map column
   ---------------------------------------------------------- */
.lv3__col--map {
  width: 100%;
}

@media (min-width: 960px) {
  .lv3__col--map {
    flex: 1;
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100dvh;
  }
}

.lv3__map-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--lv3-mist);
  min-height: calc(100vh - 200px);
  min-height: calc(100dvh - 200px);
}

@media (min-width: 960px) {
  .lv3__map-wrapper {
    min-height: 100vh;
    min-height: 100dvh;
  }
}

.lv3__map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Area label — hidden per design decision */
.lv3__map-area-label,
.lv3__map-area-label--visible {
  display: none !important;
}

/* Mobile map selected-clinic card (bottom overlay) */
.lv3__map-selected {
  position: absolute;
  bottom: 20px;
  left: 12px;
  right: 12px;
  z-index: 3;
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
  display: none;
}

/* Bottom card is mobile-only — desktop uses the InfoWindow popup */
.lv3__map-selected--visible {
  display: block;
}

@media (min-width: 960px) {
  .lv3__map-selected--visible {
    display: none;
  }
}

.lv3__map-selected-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lv3-cobalt);
  margin-bottom: 4px;
}

.lv3__map-selected-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--lv3-ink);
  margin-bottom: 3px;
}

.lv3__map-selected-address {
  font-size: 13px;
  color: var(--lv3-body);
  margin-bottom: 4px;
}

.lv3__map-selected-phone {
  display: block;
  font-size: 13px;
  color: var(--lv3-body);
  text-decoration: none;
  margin-bottom: 12px;
}

.lv3__map-selected-phone:hover {
  color: var(--lv3-cobalt);
  text-decoration: underline;
}

.lv3__map-selected-actions {
  display: flex;
  gap: 8px;
}

/* ----------------------------------------------------------
   12. Mobile floating toggle pill
   ---------------------------------------------------------- */
.lv3__float-toggle {
  position: fixed;
  z-index: 10;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  background: var(--lv3-ink);
  border-radius: 40px;
  padding: 4px;
  gap: 2px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

/* Hidden on desktop — we own this breakpoint, not the theme's large-up-hide */
@media (min-width: 960px) {
  .lv3__float-toggle {
    display: none;
  }
}

.lv3__toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 18px;
  border-radius: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.65);
  transition: background-color 0.15s, color 0.15s;
}

.lv3__toggle-btn:hover {
  color: #fff;
}

.lv3__toggle-btn--active {
  background: #fff;
  color: var(--lv3-ink);
}

/* Active button keeps dark ink on hover — white-on-white would be invisible */
.lv3__toggle-btn--active:hover {
  color: var(--lv3-ink);
}

/* ----------------------------------------------------------
   13. Google Maps InfoWindow popup (lv3 context guard)
   ---------------------------------------------------------- */
.lv3 .gm-style .gm-style-iw-c:has(.lv3-popup) {
  padding: 0 !important;
  border-radius: 16px;
  border: 1px solid rgba(175, 187, 235, 0.3);
  overflow: visible;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14) !important;
}

.lv3 .gm-style .gm-style-iw-c:has(.lv3-popup) .gm-style-iw-d {
  position: relative;
  padding: 0 !important;
  overflow: hidden !important;
}

.lv3 .gm-style .gm-style-iw-c:has(.lv3-popup) button[title='Close'] {
  top: 0 !important;
  right: 0 !important;
  border-radius: 100%;
}

.lv3 .gm-style .gm-style-iw-c:has(.lv3-popup)::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -20px;
  width: 0;
  height: 0;
  border-top: solid 20px #fff;
  border-left: solid 20px transparent;
  border-right: solid 20px transparent;
}

/* CSS :has() fallback for older browsers */
.lv3 .gm-style .gm-style-iw-c[\:has\(.lv3-popup\)] {
  padding: 0 !important;
  border-radius: 16px;
  overflow: visible;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14) !important;
}

.lv3-popup {
  padding: 16px;
  min-width: 220px;
  max-width: 280px;
}

.lv3-popup__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lv3-cobalt, #4063e7);
  margin-bottom: 4px;
}

.lv3-popup__name {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 3px;
}

.lv3-popup__address {
  font-size: 13px;
  color: #4a4a4a;
  margin-bottom: 4px;
}

.lv3-popup__phone {
  display: block;
  font-size: 13px;
  color: #4a4a4a;
  text-decoration: none;
  margin-bottom: 12px;
}

.lv3-popup__phone:hover {
  color: var(--lv3-cobalt, #4063e7);
  text-decoration: underline;
}

.lv3-popup__actions {
  display: flex;
  gap: 8px;
}
