.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;
}

.nearest-dealer__section {
  grid-column-gap: var(--_spacing---spacing-md);
  grid-row-gap: var(--_spacing---spacing-md);
  flex-flow: column;
  display: flex;
}

.nearest-dealer__section--modal {
  grid-row-gap: var(--_spacing---spacing-xs);
}

.nearest-dealer__copy {
  column-gap: var(--_spacing---spacing-xxs);
  row-gap: var(--_spacing---spacing-xxs);
  flex-flow: column;
  display: flex;
}

.nearest-dealer__heading {
  line-height: var(--_typography---line-height-heading);
  font-weight: var(--_typography---font-weight-semibold);
  font-size: var(--_typography---text-h5);
  font-family: var(--_typography---font-heading);
  color: var(--_theme---text-primary);
  margin-top: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

.nearest-dealer__heading--modal {
  line-height: var(--_typography---line-height-heading);
  font-weight: var(--_typography---font-weight-semibold);
  font-size: var(--_typography---text-h6);
  font-family: var(--_typography---font-heading);
  color: var(--_theme---text-primary);
  margin-top: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

.nearest-dealer__description {
  line-height: var(--_typography---line-height-normal);
  font-family: var(--_typography---font-body);
  font-size: var(--_typography---text-paragraph-md);
  font-weight: var(--_typography---font-weight-medium);
  margin-top: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

/* Figma “Location Fields”: 16px between search row and location link; 24px below intro */
.nearest-dealer__zip-form {
  display: flex;
  flex-flow: column;
  row-gap: var(--_spacing---spacing-sm);
  align-items: stretch;
  margin-top: var(--_spacing---spacing-sm);
}

.nearest-dealer__visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Figma Icon Link: 20px icon + 16px medium underlined link */
.nearest-dealer__location-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: var(--_spacing---spacing-xxs);
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  cursor: pointer;
  font-family: var( --_typography---font-body);
  font-size: var(--_typography---text-paragraph-md, 1rem);
  font-weight: var(--_typography---font-weight-medium);
  line-height: 1.5;
  color: var(--primary-600, #1b365f);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--primary-600, #1b365f);
}

.nearest-dealer__location-link:hover:not(:disabled) {
  color: var(--_theme---btn-bg-primary-hover);
  text-decoration-color: var(--_theme---btn-bg-primary-hover);
}

.nearest-dealer__location-link:disabled {
  opacity: 0.7;
  cursor: wait;
}

.nearest-dealer__location-link--error {
  color: var(--error-300);
  text-decoration-color: var(--error-300);
}

.nearest-dealer__location-link--error svg {
  color: var(--error-300);
}

.nearest-dealer__location-link-text {
  white-space: nowrap;
}

.nearest-dealer__zip-section {
  grid-column-gap: 6px;
  grid-row-gap: 6px;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.nearest-dealer__zip-label {
  line-height: var(--_typography---line-height-normal);
  font-weight: var(--_typography---font-weight-bold);
}

.nearest-dealer__zip-number {
  line-height: var(--_typography---line-height-normal);
  font-weight: var(--_typography---font-weight-medium);
}

.nearest-dealer__zip-section-change {
  color: var(--_theme---text-primary);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  font-size: var(--_typography---text-paragraph-sm);
  font-weight: var(--_typography---font-weight-medium);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--_theme---text-primary);
}

.nearest-dealer__zip-section-change:hover {
  color: var(--_theme---btn-bg-primary-hover);
  text-decoration-color: var(--_theme---btn-bg-primary-hover);
}

.nearest-dealer__modal-empty {
  padding: var(--_spacing---spacing-md) 0;
}

.nearest-dealer__modal-empty-text {
  margin: 0;
  font-size: var(--_typography---text-paragraph-sm);
  line-height: var(--_typography---line-height-normal);
  color: var(--_theme---text-primary);
}

/* Design library: “No retailers” / Location card empty (node 22609:12030) */
.nearest-dealer__empty {
  display: flex;
  flex-flow: column;
  align-items: flex-start;
  row-gap: var(--_spacing---spacing-sm);
  width: 100%;
  box-sizing: border-box;
  padding: var(--_spacing---spacing-md);
  border: 1px solid var(--_theme---border);
  border-radius: var(--_spacing---radius-lg);
  background-color: var(--white);
}

.nearest-dealer__empty-copy {
  display: flex;
  flex-flow: column;
  row-gap: var(--_spacing---spacing-xxs);
  width: 100%;
}

.nearest-dealer__empty-title-row {
  display: flex;
  flex-flow: row;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}

.nearest-dealer__empty-info-svg {
  flex-shrink: 0;
  margin-top: 0.15em;
}

@media (max-width: 991px) {
  .nearest-dealer__empty-info-svg {
    margin-top: 0.2em;
  }
}

.nearest-dealer__empty-title {
  margin: 0;
  font-family: var(--_typography---font-heading);
  font-size: var(--_typography---text-card-dealer-name);
  font-weight: var(--_typography---font-weight-semibold);
  line-height: var(--_typography---line-height-heading);
  color: var(--_theme---text-primary);
  font-feature-settings: "lnum" 1, "pnum" 1;
}

.nearest-dealer__empty-body {
  margin: 0;
  font-family: var(--_typography---font-body);
  font-weight: var(--_typography---font-weight-medium);
  line-height: 1.5;
  color: var(--_theme---text-primary);
}

.nearest-dealer__empty-body-lead {
  font-size: var(--_typography---text-paragraph-sm);
  font-weight: var(--_typography---font-weight-medium);
  line-height: var(--_typography---line-height-normal);
}

.nearest-dealer__empty-body-tail {
  font-size: var(--_typography---text-paragraph-xs, 0.875rem);
}

.nearest-dealer__empty-body-link {
  font-size: var(--_typography---text-paragraph-sm, 1rem);
  font-weight: var(--_typography---font-weight-medium);
  color: var(--primary-600, #1b365f);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.nearest-dealer__empty-body-link:hover {
  color: var(--_theme---btn-bg-primary-hover);
}

.nearest-dealer__empty-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  min-width: 100px;
  padding: var(--_spacing---btn-padding-v-sm, 8px)
    var(--_spacing---btn-padding-h-md, 16px);
  border-radius: var(--_spacing---radius-full);
  border: 1px solid var(--primary-600, #1b365f);
  background-color: transparent;
  color: var(--primary-600, #1b365f);
  font-family: var(--_typography---font-body);
  font-size: var(--_typography---text-btn-sm, 1rem);
  font-weight: var(--_typography---font-weight-bold);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
}

.nearest-dealer__empty-cta:hover {
  color: var(--_theme---btn-bg-primary-hover);
  border-color: var(--_theme---btn-bg-primary-hover);
}

/* Match ProductGrid: dim prior result while a new search is in flight */
.nearest-dealer__location-card {
  transition: opacity 0.25s ease;
  opacity: 1;
}

.nearest-dealer__location-card--searching {
  opacity: 0.6;
}

.nearest-dealer__cta-button {
  min-height: 44px;
  column-gap: var(--_spacing---btn-gap-lg);
  row-gap: var(--_spacing---btn-gap-lg);
  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;
  display: flex;
  padding: var(--_spacing---btn-padding-v-lg) var(--_spacing---btn-padding-h-lg);
  border-radius: var(--_spacing---radius-full);
  text-decoration: none;
  transition: opacity 0.2s, color 0.3s, background-color 0.3s;
  cursor: pointer;
  border-style: unset;
}

.nearest-dealer__cta-button:hover {
  background-color: var(--_theme---btn-bg-primary-hover);
  color: var(--_theme---btn-text-primary-hover);
  border-color: var(--_theme---btn-bg-primary-hover);
}

