/* Luxury theme overrides for MLS SPA — load after mls-spa.css */

/* Ensure MLS search shell sits under the in-flow Luxury header (see theme.css). */
body.has-mls-spa-mount #main,
body:has(.lux-mls-search.mls-spa-mount) #main {
  padding-top: 0 !important;
}

[data-mls-spa-root] {
  --mls-color-primary: var(--color-primary);
  --mls-color-accent: var(--color-accent);
  --mls-color-accent-hover: var(--color-secondary-hover);
  --mls-color-surface: var(--color-surface);
  --mls-color-background: var(--color-background);
  --mls-font-heading: var(--font-heading);
  --mls-font-body: var(--font-body);
  --mls-radius: 0;
}

.search-shell__btn,
[data-mls-spa-root] .search-shell__btn {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 0;
  transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.search-shell__btn--primary,
[data-mls-spa-root] .search-shell__btn--primary,
.filter-popover__apply.search-shell__btn--primary {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
}

.search-shell__btn--primary:hover:not(:disabled),
[data-mls-spa-root] .search-shell__btn--primary:hover:not(:disabled) {
  background-color: var(--color-secondary-hover) !important;
  border-color: var(--color-secondary-hover) !important;
}

.search-shell__btn:not(.search-shell__btn--primary),
[data-mls-spa-root] .search-shell__btn:not(.search-shell__btn--primary) {
  background-color: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text-primary);
}

.search-shell__filter-option--active,
[data-mls-spa-root] .search-shell__filter-option--active {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
}

.search-shell__login,
.search-shell__logout,
[data-mls-spa-root] .search-shell__login,
[data-mls-spa-root] .search-shell__logout {
  font-family: var(--font-body);
  color: var(--color-accent) !important;
}

/* Auth modal — theme accent (not SPA default blue) */
.auth-modal__btn--primary,
[data-mls-spa-root] .auth-modal__btn--primary {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
  font-family: var(--font-body);
  border-radius: 0;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-modal__btn--primary:hover:not(:disabled),
[data-mls-spa-root] .auth-modal__btn--primary:hover:not(:disabled) {
  background-color: var(--color-secondary-hover) !important;
  border-color: var(--color-secondary-hover) !important;
}

.auth-modal__link,
[data-mls-spa-root] .auth-modal__link {
  color: var(--color-accent) !important;
  font-family: var(--font-body);
}

.auth-modal__link:hover,
[data-mls-spa-root] .auth-modal__link:hover {
  color: var(--color-secondary-hover) !important;
}

.auth-modal__title,
[data-mls-spa-root] .auth-modal__title {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-regular, 400);
}

.auth-modal__dialog,
[data-mls-spa-root] .auth-modal__dialog {
  border-radius: 0;
}

.auth-modal__input,
[data-mls-spa-root] .auth-modal__input {
  border-radius: 0;
}

.auth-modal__input:focus,
[data-mls-spa-root] .auth-modal__input:focus {
  outline-color: var(--color-accent) !important;
}

.lux-mls-featured__spa .listing-card,
[data-mls-spa-root] .listing-card {
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.lux-mls-search__shell .lux-mls-search__spa {
  background: transparent;
  padding: 0;
  text-align: left;
  color: var(--color-text-primary);
}

.lux-mls-search__shell .search-shell__toolbar {
  padding: 0.5rem 1rem;
}

.lux-mls-search__shell .search-shell__search-icon {
  left: 0.75rem;
}

.lux-mls-search__shell .mls-spa-search-input,
.lux-mls-search__shell input[type="search"],
.lux-mls-search__shell .search-shell__input {
  border: 2px solid var(--color-border) !important;
  border-radius: 0 !important;
  /* Leave room for .search-shell__search-icon; keep vertical padding tight to the border */
  padding: 0.5rem 0.75rem 0.5rem 2.5rem !important;
  font-family: var(--font-body);
  box-sizing: border-box;
}

.lux-mls-search__shell .search-shell__input--number {
  padding-left: 0.75rem !important;
}

.lux-mls-search__shell .mls-spa-search-input:focus,
.lux-mls-search__shell input[type="search"]:focus,
.lux-mls-search__shell .search-shell__input:focus {
  border-color: var(--color-accent) !important;
  outline: none !important;
}

.lux-mls-search__shell .search-shell__form-row--primary {
  align-items: stretch;
  gap: 0.5rem;
}

.lux-mls-search__shell .search-shell__form-row--primary .search-shell__btn {
  align-self: stretch;
}
