.location-card {
  padding: var(--_spacing---card-padding-sm);
  column-gap: var(--_spacing---spacing-sm);
  row-gap: var(--_spacing---spacing-sm);
  border: 1px solid var(--_theme---border);
  border-radius: var(--_spacing---radius-lg);
  background-color: var(--neutral-100);
  flex-flow: column;
  display: flex;
}

.location-card--surface-white {
  background-color: var(--white);
}

/* .location-card:hover {
  box-shadow: 0 0 18px 0 var(--alpha-dark-200, rgba(0, 0, 0, 0.18));
} */

.location-card__body {
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  flex-flow: column;
  justify-content: space-between;
  display: flex;
}

.location-card__header {
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  flex-flow: row;
  flex: 1 1 0%;
  justify-content: space-between;
  display: flex;
}

.location-card__dealer-info {
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  flex-flow: column;
  flex: 1 1 0%;
  align-items: flex-start;
  display: flex;
}

.location-card__badge {
  gap: 4px;
  border: 1px solid var(--_theme---border);
  border-radius: var(--_spacing---radius-full);
  background-color: var(--white);
  flex-flow: row;
  flex: 1 1 0%;
  justify-content: flex-start;
  align-items: center;
  padding: 4px 8px 4px 4px;
  display: flex;
}

.location-card__badge-icon {
  width: 16px;
  height: 16px;
}

.location-card__badge-label {
  font-size: var(--_typography---text-card-badge);
  font-weight: var(--_typography---font-weight-bold);
}

.location-card__dealer-name {
  font-family: var(--_typography---font-heading);
  font-size: var(--_typography---text-card-dealer-name);
  line-height: var(--_typography---line-height-heading);
  font-weight: var(--_typography---font-weight-semibold);
}

a.location-card__dealer-name--link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

a.location-card__dealer-name--link:hover {
  color: var(--_theme---btn-bg-primary-hover);
  text-decoration: underline;
  text-underline-offset: 2px;
}

a.location-card__dealer-name--link:focus-visible {
  outline: 2px solid var(--primary-100, rgba(134, 172, 222, 0.9));
  outline-offset: 2px;
}

.location-card__distance {
  font-size: var(--_typography---text-paragraph-xs);
  line-height: var(--_typography---line-height-normal);
  font-weight: var(--_typography---font-weight-bold);
  flex: 0 1 auto;
}

.location-card__address {
  font-size: var(--_typography---text-paragraph-sm);
  line-height: var(--_typography---line-height-normal);
  font-weight: var(--_typography---font-weight-medium);
}

.location-card__links {
  column-gap: var(--_spacing---spacing-md);
  row-gap: var(--_spacing---spacing-xxs);
  flex-flow: wrap;
  display: flex;
}

.location-card__contact-link {
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  color: var(--_theme---text-primary);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.location-card__contact-link:hover {
  color: var(--_theme---btn-bg-primary-hover);
}

.location-card__link-anchor {
  max-width: 100%;
  display: inline-block;
}

.location-card__link-text {
  color: var(--_theme---text-primary);
  text-decoration: underline;
}

.location-card__link-text:hover {
  color: var(--_theme---btn-bg-primary-hover);
}

.location-card__icon {
  width: 16px;
  height: 16px;
  display: block;
}

.location-card__tags {
  gap: 6px;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.location-card__tag {
  border-radius: var(--_spacing---radius-full);
  background-color: var(--blue-100);
  font-size: var(--_typography---text-card-badge);
  font-weight: var(--_typography---font-weight-bold);
  padding: 6px 8px;
}

.location-card__hours {
  gap: 6px;
  flex-flow: wrap;
  display: flex;
}

/* Expandable week hours (Figma Sundance Design Library node 22588:352) */
.location-card__hours--expandable {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  row-gap: var(--_spacing---spacing-xxs, 8px);
}

.location-card__hours-toggle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
  text-align: left;
  color: var(--_theme---text-primary);
  box-sizing: border-box;
}

.location-card__hours-toggle:hover {
  color: var(--_theme---btn-bg-primary-hover);
}

.location-card__hours-toggle:focus-visible {
  outline: 2px solid var(--primary-100, rgba(134, 172, 222, 0.9));
  outline-offset: 2px;
}

.location-card__hours-status-row {
  gap: 6px;
  flex-flow: row;
  align-items: center;
  display: flex;
}

.location-card__hours-status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.location-card__hours-today {
  font-size: var(--_typography---text-paragraph-sm, 1rem);
  line-height: var(--_typography---line-height-normal, 1.5);
  font-weight: var(--_typography---font-weight-medium, 500);
  min-width: 0;
}

.location-card__hours-chevron {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
  color: currentColor;
}

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

.location-card__hours-details-wrap {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  overflow: hidden;
  transition:
    grid-template-rows 250ms ease-in,
    opacity 250ms ease-in;
}

.location-card__hours-details-wrap--expanded {
  grid-template-rows: 1fr;
  opacity: 1;
}

.location-card__hours-details {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---spacing-xxs, 8px);
  padding-left: 16px;
  width: 100%;
  box-sizing: border-box;
  font-size: var(--_typography---text-paragraph-sm, 1rem);
  line-height: var(--_typography---line-height-normal, 1.5);
  color: var(--_theme---text-primary);
}

.location-card__hours-group {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px;
}

.location-card__hours-group-label {
  flex: 0 0 130px;
  width: 130px;
  max-width: 130px;
  font-weight: var(--_typography---font-weight-bold, 700);
}

.location-card__hours-group-hours {
  font-weight: var(--_typography---font-weight-medium, 500);
  flex: 1 1 auto;
  min-width: 0;
}

.location-card__hours-group-hours--full {
  flex-basis: 100%;
  padding-left: 0;
}

.location-card__hours-label-row {
  gap: 6px;
  flex-flow: row;
  align-items: center;
  display: flex;
}

.location-card__hours-status-label {
  font-weight: var(--_typography---font-weight-bold);
  min-width: 130px;
  line-height: var(--_typography---line-height-normal);
}

.location-card__hours-time-row {
  gap: 6px;
  justify-content: center;
  align-items: center;
  display: flex;
}

.location-card__cta {
  min-height: 44px;
  padding: var(--_spacing---btn-padding-v-lg) var(--_spacing---btn-padding-h-lg);
  column-gap: var(--_spacing---btn-gap-lg);
  row-gap: var(--_spacing---btn-gap-lg);
  border-radius: var(--_spacing---radius-full);
  background-color: var(--_theme---btn-bg-primary);
  color: var(--_theme---btn-text-primary);
  font-size: var(--_typography---text-btn-lg);
  line-height: var(--_typography---line-height-tight);
  font-weight: var(--_typography---font-weight-bold);
  justify-content: center;
  align-items: center;
  text-decoration: none;
  transition: opacity 0.2s, color 0.3s, background-color 0.3s;
  display: flex;
}

.location-card__cta:hover {
  border-color: var(--_theme---btn-bg-primary-hover);
  background-color: var(--_theme---btn-bg-primary-hover);
  color: var(--_theme---btn-text-primary-hover);
}

.icon-link {
  grid-column-gap: var(--_spacing---spacing-xxs);
  grid-row-gap: var(--_spacing---spacing-xxs);
  color: var(--_theme---text-primary);
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

/* Icon paths use fill="currentColor" — inherits this color */
.icon-link:hover,
.icon-link:focus-within {
  color: var(--_theme---btn-bg-primary-hover);
}

.icon-link svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .icon-link svg {
    width: 16px;
    height: 16px;
  }
}

.link-with-icon {
  line-height: var(--_typography---line-height-normal);
  font-weight: var(--_typography---font-weight-medium);
  color: inherit;
}

.icon-link__text {
  text-decoration: underline;
  color: inherit;
}

.location-card__hours-status-icon {
  width: 10px;
  height: 10px;
}

.location-card__hours-open-now-icon {
  width: 16px;
  height: 16px;
}

.location-card__footer-divider {
  width: 100%;
  height: 1px;
  margin: 0;
  border: none;
  background-color: var(--_theme---border);
  flex-shrink: 0;
}

.location-card__footer-actions {
  flex-flow: row wrap;
  align-items: center;
  column-gap: var(--_spacing---spacing-sm);
  row-gap: var(--_spacing---spacing-sm);
  width: 100%;
  display: flex;
}

.location-card__footer-btn-primary {
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  min-width: 100px;
  min-height: 36px;
  padding: 8px 16px;
  border: none;
  border-radius: var(--_spacing---radius-full);
  background-color: var(--_theme---btn-bg-primary);
  color: var(--_theme---btn-text-primary);
  font-family: var(--_typography---font-body);
  font-size: var(--_typography---text-button-small, 16px);
  font-weight: var(--_typography---font-weight-bold);
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  text-decoration: none;
}

.location-card__footer-btn-primary:hover {
  background-color: var(--_theme---btn-bg-primary-hover);
}

.location-card__footer-btn-text {
  box-sizing: border-box;
  align-items: center;
  min-height: 20px;
  padding: 0 0 4px 0;
  border: none;
  background: none;
  color: var(--_theme---btn-bg-primary);
  font-family: var(--_typography---font-body);
  font-size: var(--_typography---text-button-small, 16px);
  font-weight: var(--_typography---font-weight-bold);
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  text-decoration: none;
}

.location-card__footer-btn-text:hover {
  color: var(--_theme---btn-bg-primary-hover);
}

.text-link_label {
  position: relative;
}

.text-link_label::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(1);
  transform-origin: right;
  transition: transform 0.3s ease;
}

.text-link_label::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.text-link:hover .text-link_label::after {
  transform: scaleX(0);
  transform-origin: right;
}

.text-link:hover .text-link_label::before {
  transform: scaleX(1);
  transform-origin: left;
  transition-delay: 0.3s;
}

/**
 * Shared spinner (SearchFieldInput submit + Products Gallery variant swap).
 * Block: search-field-spinner
 */

.search-field-spinner {
  display: inline-flex;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--primary-300, #86acde);
}

.search-field-spinner svg {
  display: block;
}

/**
 * Bordered search row (Figma “Search Input”) — shared by Nearest Dealer + Dealer Locator.
 * Block: search-field-input
 */

.search-field-input {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  min-height: 48px;
  padding: var(--_spacing---input-padding-sm) var(--_spacing---input-padding-md);
  gap: 10px;
  border: 1px solid var(--_theme---input-border-default, #1b365f);
  border-radius: var(--_spacing---radius-md, 4px);
  background: var(--white, #ffffff);
  transition: box-shadow 200ms ease;
}

.search-field-input:focus-within {
  box-shadow: 0 0 0 var(--input-focus-spread, 3px)
    var(--input-border-focus, rgba(134, 172, 222, 0.6));
}

.search-field-input__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--_typography---font-body);
  font-weight: var(--_typography---font-weight-semibold-heading);
  font-size: var(--_typography---text-input-md, 1rem);
  line-height: 20px;
  color: var(--_theme---text-primary);
}

.search-field-input__input::placeholder {
  color: var(--neutral-500, #75706b);
  font-weight: 550;
}

.search-field-input__input:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.search-field-input__clear {
  box-sizing: border-box;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: var(--_spacing---radius-full);
  background-color: var(--_theme---border);
  color: var(--primary-600, #1b365f);
  cursor: pointer;
  transition:
    color 200ms ease,
    background-color 200ms ease;
}

.search-field-input__clear:hover {
  color: var(--_theme---btn-bg-primary-hover);
  background-color: var(--neutral-200, #e8e6e3);
}

.search-field-input__submit {
  box-sizing: border-box;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--primary-600, #1b365f);
}

.search-field-input__submit-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.search-field-input__submit:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/**
 * Filter pills — BEM elements of block `dealer-locator` (owned by DealerFilters.tsx)
 */

.dealer-locator__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.dealer-locator__filter {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  min-height: 36px;
  padding: 8px 16px;
  border: 1px solid var(--primary-600, #1b365f);
  border-radius: 100px;
  font-family: "Public Sans Custom", sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.dealer-locator__filter--active {
  background-color: var(--primary-600, #1b365f);
  color: var(--white, #fff);
  font-size: 16px;
  line-height: 1;
}

.dealer-locator__filter--inactive {
  background-color: transparent;
  font-size: 1rem;
  line-height: var(--_typography---line-height-tight);
  color: var(--primary-600);
}

.dealer-locator__filter--inactive:hover {
  opacity: 0.6;
}

/**
 * Dealer map — floating controls (Sundance Website Production map UI).
 * @see https://www.figma.com/design/qrzBvD6BMeBoUbf2M8UVvk/Sundance---Website-Production?node-id=2662-10983
 */

.dealer-map {
  position: relative;
  width: 100%;
  height: 100%;
}

.dealer-map__canvas {
  width: 100%;
  height: 100%;
  min-height: 200px;
}

.dealer-map__search-area-anchor {
  position: absolute;
  z-index: 2;
  top: var(--_spacing---spacing-md, 16px);
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.dealer-map__search-area-anchor .dealer-map__search-area-btn {
  pointer-events: auto;
}

.dealer-map__search-area-btn {
  margin: 0;
  padding: var(--_spacing---btn-padding-v-md, 10px) var(--_spacing---btn-padding-h-lg, 24px);
  border: 1px solid rgba(27, 54, 95, 0.18);
  border-radius: var(--_spacing---radius-full, 999px);
  background-color: #fff;
  box-shadow:
    0 1px 2px rgba(27, 54, 95, 0.06),
    0 8px 24px rgba(0, 0, 0, 0.12);
  font-family: "Public Sans Custom", sans-serif;
  font-size: var(--_typography---text-btn-md, 14px);
  font-weight: var(--_typography---font-weight-bold, 700);
  line-height: var(--_typography---line-height-tight, 1.25);
  color: var(--primary-600, #1b365f);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.dealer-map__search-area-btn:hover {
  border-color: rgba(27, 54, 95, 0.28);
  background-color: var(--light-grey-100, #f5f5f5);
  box-shadow:
    0 1px 2px rgba(27, 54, 95, 0.08),
    0 10px 28px rgba(0, 0, 0, 0.14);
}

.dealer-map__search-area-btn:focus-visible {
  outline: 2px solid var(--_theme---btn-bg-primary, #1b365f);
  outline-offset: 3px;
}

/**
 * Dealer Locator — BEM block: dealer-locator
 * Layout breakpoint: 991px / 992px (stacked vs side-by-side). No JS viewport class.
 *
 * Height: `100dvh` minus fixed chrome (global nav). Sundance Webflow header ≈ 80px
 * (measured on dealer-locator). Override on the host page, e.g.
 *   html { --dealer-locator-header-offset: 72px; }
 */

.dealer-locator {
  display: flex;
  width: 100%;
  height: calc(100vh - var(--dealer-locator-header-offset, 80px));
  max-height: calc(100vh - var(--dealer-locator-header-offset, 80px));
  font-family: "Public Sans Custom", sans-serif;
  /*
   * Webflow (and similar) embeds this in normal document flow under a header/hero.
   * Sidebar uses `overflow: visible` so card shadows are not clipped at its edges;
   * that can let the sidebar paint a few pixels taller than this root (padding + flex).
   * Without clipping here, that overflow draws on top of the site footer when you scroll.
   */
  overflow: hidden;
}

@media (max-width: 991px) {
  .dealer-locator {
    flex-direction: column;
    /* Let the page grow naturally on mobile so the full card list can render below the map. */
    height: auto;
    max-height: none;
    min-height: 0;
    overflow: visible;
  }
}

@media (min-width: 992px) {
  .dealer-locator {
    --dealer-locator-scrollbar-gutter: 10px;
  }
}

/* ——— Sidebar ——— */

.dealer-locator__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---spacing-lg);
  flex: 0 0 clamp(465px, 30vw, 600px);
  height: 100%;
  /* `overflow: hidden` clips card `box-shadow`s at the border box; keep visible so
     shadows can extend into padding / past edges. `min-height: 0` preserves flex shrink. */
  min-height: 0;
  overflow: visible;
  background-color: var(--light-grey-100);
  padding-top: var(--_spacing---spacing-xl);
}

@media (max-width: 991px) {
  .dealer-locator__sidebar {
    order: 2;
    width: 100%;
    min-width: unset;
    /* Override desktop `flex-basis: clamp(...)` on the column axis (was clipping tall lists). */
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    overflow-x: hidden;
    overflow-y: visible;
    gap: var(--_spacing---spacing-md);
    padding-top: 0;
  }
}

.dealer-locator__sidebar-main {
  position: relative;
  /* Above `.dealer-locator__card-list` (z-index: 2) so the Places dropdown can paint over the scrollable list. */
  z-index: 3;
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  gap: var(--_spacing---spacing-md);
  background-color: var(--light-grey-100);
  padding-left: var(--_spacing---spacing-xl);
  padding-right: var(--_spacing---spacing-xl);
}

@media (max-width: 991px) {
  .dealer-locator__sidebar-main {
    gap: var(--_spacing---spacing-sm);
    padding: var(--_spacing---spacing-lg) 20px 0;
  }
}

.dealer-locator__headline {
  margin: 0;
  font-family: var(--_typography---font-heading);
  font-size: var(--_typography---text-h4);
  font-weight: var(--_typography---font-weight-regular);
  line-height: var(--_typography---line-height-heading);
  color: #2B2B2B;
}

/* ——— Search + current location ——— */

.dealer-locator__location-fields {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--_spacing---spacing-sm);
  width: 100%;
}

.dealer-locator__search-form {
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}

.dealer-locator__search-combobox {
  position: relative;
  width: 100%;
}

.dealer-locator__predictions {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: min(280px, 40vh);
  margin: 0;
  padding: 4px 0;
  overflow-y: auto;
  list-style: none;
  border: 1px solid rgba(27, 54, 95, 0.15);
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.dealer-locator__prediction {
  padding: 10px 14px;
  font-family: "Public Sans Custom", sans-serif;
  font-size: 14px;
  font-weight: var(--_typography---font-weight-medium, 500);
  line-height: 1.35;
  color: var(--primary-600);
  cursor: pointer;
}

.dealer-locator__prediction:hover,
.dealer-locator__prediction--active {
  background-color: var(--primary-100);
}

/* Geolocation: requests browser permission on click. */
.dealer-locator__current-location {
  display: inline-flex;
  align-items: center;
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  width: fit-content;
  padding: 0;
  border: none;
  background: none;
  font-family: "Public Sans Custom", sans-serif;
  font-size: var(--_typography---text-paragraph-sm);
  font-weight: var(--_typography---font-weight-medium);
  line-height: var(--_typography---line-height-normal);
  color: var(--primary-600);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-align: left;
  cursor: pointer;
}

.dealer-locator__current-location:disabled {
  cursor: wait;
  opacity: 0.7;
}

.dealer-locator__current-location svg {
  flex-shrink: 0;
  color: var(--primary-600);
}

.dealer-locator__current-location--error {
  color: var(--error-300);
}

.dealer-locator__current-location--error svg {
  color: var(--error-300);
}

/* ——— Card list ——— */

.dealer-locator__card-list {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  box-sizing: border-box;
  padding-left: var(--_spacing---spacing-xl);
  padding-right: var(--_spacing---spacing-xl);
  padding-bottom: calc(var(--_spacing---spacing-xl) + var(--_spacing---spacing-xl));
  /* Classic scrollbars shrink the client width vs overlay (macOS); widen inner so cards match search. */
  overflow-x: hidden;
  overflow-y: auto;
}

.dealer-locator__card-list-inner {
  display: flex;
  flex-direction: column;
  gap: var(--_spacing---spacing-sm);
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .dealer-locator__card-list {
    /* `hidden` + `overflow-y: auto` computes to `auto` on both axes; `clip` avoids clipping gutter compensation. */
    overflow-x: clip;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
  }

  .dealer-locator__card-list-inner {
    flex-shrink: 0;
    /* Reclaim width taken by the vertical scrollbar track (see `--dealer-locator-scrollbar-gutter`). */
    width: calc(100% + var(--dealer-locator-scrollbar-gutter));
    margin-inline-end: calc(-1 * var(--dealer-locator-scrollbar-gutter));
  }

  .dealer-locator__card-list.dealer-locator__card-list--scrolling {
    scrollbar-color: rgba(27, 54, 95, 0.45) transparent;
  }

  .dealer-locator__card-list::-webkit-scrollbar {
    width: var(--dealer-locator-scrollbar-gutter);
  }

  .dealer-locator__card-list::-webkit-scrollbar-track {
    background: transparent;
  }

  .dealer-locator__card-list::-webkit-scrollbar-thumb {
    border-radius: 6px;
    background-color: transparent;
  }

  .dealer-locator__card-list.dealer-locator__card-list--scrolling::-webkit-scrollbar-thumb {
    background-color: rgba(27, 54, 95, 0.35);
  }
}

@media (max-width: 991px) {
  .dealer-locator__card-list {
    flex: none;
    padding: 0px 20px 32px;
    /* `overflow-x: hidden` + `visible` y computes to `auto` and traps scroll in the cards only. */
    overflow: visible;
  }

  .dealer-locator__card-list-inner {
    gap: 20px;
  }
}

/* ——— Map ——— */

.dealer-locator__map {
  position: relative;
  flex: 1;
  min-width: 0;
}

@media (max-width: 991px) {
  .dealer-locator__map {
    order: 1;
    position: sticky;
    top: 0;
    z-index: 4;
    flex: none;
    width: 100%;
    height: 260px;
    min-height: 260px;
  }
}

/* Tablet (stacked): slightly taller map so zoom controls stay usable; phones stay 260px. */
@media (min-width: 768px) and (max-width: 991px) {
  .dealer-locator__map {
    height: 300px;
    min-height: 300px;
  }
}

/* ——— Empty state ——— */

.dealer-locator__empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  padding: 24px;
  border: 1px solid #d9cdbd;
  border-radius: 12px;
  background: #fff;
  color: #1b365f;
  box-sizing: border-box;
}

.dealer-locator__empty-copy {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.dealer-locator__empty-title-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}

.dealer-locator__empty-info-svg {
  flex-shrink: 0;
  margin-top: 0.18em;
  color: #1b365f;
}

.dealer-locator__empty-title {
  margin: 0;
  font-family: var(--_typography---font-heading);
  font-size: var(--_typography---text-card-dealer-name, 2rem);
  font-weight: var(--_typography---font-weight-semibold, 600);
  line-height: var(--_typography---line-height-heading, 1.2);
  color: #1b365f;
}

.dealer-locator__empty-text {
  margin: 0;
  max-width: 420px;
  font-family: var(--_typography---font-body, "Public Sans Custom", sans-serif);
  font-size: var(--_typography---text-paragraph-sm, 1rem);
  font-weight: var(--_typography---font-weight-medium, 500);
  line-height: 1.5;
  color: #1b365f;
}

.dealer-locator__empty-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  min-width: 116px;
  padding: var(--_spacing---btn-padding-v-sm, 8px)
    var(--_spacing---btn-padding-h-md, 16px);
  border: 1px solid #1b365f;
  border-radius: var(--_spacing---radius-full, 999px);
  background: transparent;
  color: #1b365f;
  font-family: var(--_typography---font-body, "Public Sans Custom", sans-serif);
  font-size: var(--_typography---text-btn-sm, 1rem);
  font-weight: var(--_typography---font-weight-bold, 700);
  line-height: 1;
  text-decoration: none;
  box-sizing: border-box;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease;
}

.dealer-locator__empty-cta:hover {
  border-color: var(--_theme---btn-bg-primary-hover, #4470ae);
  color: var(--_theme---btn-bg-primary-hover, #4470ae);
}

.dealer-locator__empty-cta:focus-visible {
  outline: 2px solid var(--primary-600, #1b365f);
  outline-offset: 3px;
}

@media (max-width: 991px) {
  .dealer-locator__empty {
    gap: 20px;
    padding: 24px 20px;
  }
}

/* ——— Result row (LocationCard wrapper) ——— */

.dealer-locator__card-wrap {
  width: 100%;
}

@media (min-width: 992px) {
  .dealer-locator__card-wrap .location-card:not(.location-card--dealer-locator-active) {
    transition: box-shadow 300ms ease;
  }

  .dealer-locator__card-wrap:hover
    .location-card:not(.location-card--dealer-locator-active) {
    box-shadow: 0 0 18px 0 var(--alpha-dark-200, rgba(0, 0, 0, 0.18));
  }
}

.location-card.location-card--dealer-locator-active {
  border-width: 2px;
  border-color: var(--_theme---btn-bg-primary, #1b365f);
}

