@font-face {
  font-family: "Ico Moon";
  src: url("/fonts/icomoon.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --ba-primary: #B9A074;
  --ba-gold: #9b8256;
  --ba-body-bg: #F5F5F5;
  --ba-dark-gray: #282A30;
  --ba-gray: #363941;
  --ba-gray-bg: #EEEEEE;
  --ba-light-gray: #4E4F58;
  --ba-border: #EAEAEA;
  --ba-dark-border: #CCCCCC;
  --ba-button-bg: #353435;
  --ba-button-bg-light: #EFEDE8;
  --ba-button-light-hover: #e8e5de;
  --ba-gray-text: #87898e;
  --ba-text: #282a30;
  --ba-green: #69BA38;
}

body.ba-public {
  min-width: 320px;
  margin: 0;
  background: var(--ba-body-bg);
  color: var(--ba-text);
  font: 14px/1.5 Inter, Figtree, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeSpeed;
  -webkit-font-smoothing: antialiased;
}

body.ba-public a {
  color: inherit;
  text-decoration: none;
}

body.ba-public a:hover {
  color: var(--ba-primary);
}

body.ba-public img {
  display: block;
  max-width: 100%;
}

body.wrap {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

body.wrap #main-content {
  display: contents;
}

/* Dissolving <main> keeps the header, breadcrumb strip, sections and footer as
 * direct flex children of body.wrap, matching the Laravel document structure.
 * A dissolved child that sets overflow (the breadcrumb strip and several
 * content sections do) otherwise loses its automatic minimum size and is
 * squashed to its padding, so hold every dissolved child at its natural
 * height. */
body.wrap #main-content > * {
  flex-shrink: 0;
}

body.wrap .public-profile-shell {
  min-height: auto;
  flex: 0 0 auto;
}

/* The legacy business layout leaves its .main margin in the flow while the
 * footer-links partial is emitted immediately after that wrapper. Keep the
 * shell-owned listing row on the same baseline as the legacy partial. */
body.wrap .listing-context--business {
  margin-top: -8px;
}

body.wrap [aria-label="State cities"] a > svg,
body.wrap [data-country-cities] a > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.ba-container {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.ba-container--narrow {
  width: min(768px, calc(100% - 32px));
}

.ba-header {
  position: sticky;
  top: 0;
  z-index: 100;
  color: #fff;
}

.ba-header__top {
  background: var(--ba-gray);
}

.ba-header__top-inner {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0;
}

.ba-header__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
}

.ba-header__brand img {
  width: auto;
  height: 32px;
}

.ba-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.ba-header__nav {
  background: var(--ba-dark-gray);
}

.ba-header__nav ul {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 9px 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}

.ba-header__nav ul::-webkit-scrollbar {
  display: none;
}

.ba-header__nav a {
  min-width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  color: #fff;
  font-size: 14px;
  font-weight: 300;
}

.ba-header__nav svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.ba-button {
  position: relative;
  display: inline-flex;
  min-width: 112px;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--ba-primary);
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 700;
  line-height: 1.1;
  transition: color 160ms ease, background 160ms ease;
}

.ba-button--outline {
  background: var(--ba-button-bg);
  color: var(--ba-primary);
}

.ba-button--solid {
  background: var(--ba-primary);
  color: var(--ba-dark-gray);
}

.ba-button:hover {
  color: var(--ba-dark-gray);
  background: var(--ba-gold);
}

.ba-main {
  flex: 1 0 auto;
  padding: 24px 0 48px;
}

/* The reference app bundle already styles `.ba-card` (its white blog card with
   `padding:.5rem`, `border-radius:1.5rem` and the ring/shadow stack), so this
   compatibility layer only keeps the Go-specific card variants. */
.ba-card.ba-empty-state,
.ba-card.ba-contact-card {
  background: #fff;
  border: 1px solid var(--ba-border);
  border-radius: 16px;
  padding: clamp(16px, 3vw, 28px);
}

.ba-copy {
  color: var(--ba-gray-text);
}

.ba-grid-links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ba-grid-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  border: 1px solid var(--ba-border);
  border-radius: 999px;
  background: #fff;
  padding: 9px 14px;
  color: var(--ba-text);
  font-weight: 600;
}

.ba-grid-links a:hover {
  border-color: var(--ba-primary);
  color: var(--ba-gold);
}

.ba-section {
  margin-bottom: 28px;
}

.ba-section h2 {
  margin: 0 0 14px;
  color: var(--ba-text);
  font-size: 18px;
  font-weight: 700;
}

.ba-footer {
  margin-top: auto;
  padding-bottom: 0;
}

.ba-footer__brand {
  background: var(--ba-gray);
  padding: 14px 0;
  text-align: center;
}

.ba-footer__brand a {
  color: #fff;
  font-weight: 800;
}

.ba-footer__copy {
  margin: 8px 0 0;
  color: var(--ba-gray-text);
  font-size: 13px;
  font-weight: 300;
}

.ba-footer__links {
  background: var(--ba-dark-gray);
  padding: 13px 0;
}

.ba-footer__links ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ba-footer__links a {
  color: var(--ba-gray-text);
  font-size: 14px;
}

.ba-warning {
  background: #fff7df;
  border-bottom: 1px solid #e5d3a7;
  color: #5f4617;
  padding: 10px 0;
  font-size: 13px;
  text-align: center;
}

.ba-form {
  display: flex;
  min-height: 52vh;
  flex-direction: column;
  justify-content: center;
}

.ba-form__box {
  display: grid;
  gap: 12px;
}

.ba-field {
  position: relative;
  display: flex;
  align-items: center;
  border: 1px solid var(--ba-dark-border);
  border-radius: 999px;
  background: #fff;
  padding: 0 12px 0 18px;
  transition: border-color 120ms ease;
}

.ba-field:hover,
.ba-field:focus-within {
  border-color: var(--ba-text);
}

.ba-field svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--ba-text);
}

.ba-field input,
.ba-field select {
  width: 100%;
  height: 40px;
  border: 0;
  background: transparent;
  color: #000;
  font: inherit;
  outline: 0;
  padding: 8px;
}

.ba-textarea {
  width: 100%;
  min-height: 120px;
  resize: none;
  border: 1px solid var(--ba-dark-border);
  border-radius: 16px;
  background: #fff;
  color: #1f2937;
  font: inherit;
  outline: 0;
  padding: 12px;
}

.ba-instructions {
  display: none;
  border: 1px solid var(--ba-dark-border);
  border-radius: 12px;
  background: var(--ba-button-bg-light);
  color: var(--ba-text);
  padding: 12px;
  font-size: 14px;
}

.ba-instructions.is-visible {
  display: block;
}

.ba-turnstile {
  min-height: 54px;
  display: flex;
  align-items: center;
  border: 1px dashed var(--ba-dark-border);
  border-radius: 12px;
  background: #fff;
  color: var(--ba-gray-text);
  padding: 10px 12px;
}

.ba-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 12px;
}

.ba-form__actions > * {
  flex: 1 1 240px;
}

.ba-form__actions .ba-button {
  width: 100%;
  min-height: 40px;
}

.wobble {
  animation: ba-wobble 0.6s ease;
}

@keyframes ba-wobble {
  0%, 100% { transform: translateX(0); }
  15% { transform: translateX(-6px); }
  30% { transform: translateX(6px); }
  45% { transform: translateX(-4px); }
  60% { transform: translateX(4px); }
  75% { transform: translateX(-2px); }
  90% { transform: translateX(2px); }
}

@media (max-width: 767px) {
  .ba-header {
    position: relative;
  }

  .ba-header__top-inner {
    min-height: 58px;
  }

  .ba-header__actions {
    gap: 6px;
  }

  .ba-button {
    min-width: 96px;
    padding: 8px 11px;
    font-size: 13px;
  }

  .ba-header__nav a {
    flex-direction: column;
    padding: 6px 12px;
    font-size: 12px;
  }

  .ba-footer__links ul {
    justify-content: flex-start;
  }

  .ba-footer__links li {
    width: calc(50% - 9px);
  }
}

/* 0.94.0 legacy parity surface additions. */
.ba-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 34px 0 22px;
}

.ba-eyebrow {
  margin: 0 0 8px;
  color: var(--ba-primary, #b9a074);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ba-hero h1,
.ba-contact-copy h1,
.ba-contact-card h1 {
  margin: 0 0 10px;
  color: var(--ba-text, #282a30);
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 800;
  line-height: 1.05;
}

.ba-lede {
  max-width: 720px;
  margin: 0;
  color: var(--ba-gray-text, #87898e);
  font-size: 18px;
}

.ba-stack {
  display: grid;
  gap: 24px;
  padding-bottom: 42px;
}

.ba-section-title {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.ba-section-title span {
  display: block;
  height: 1px;
  background: var(--ba-border, #eaeaea);
}

.ba-section-title h2 {
  margin: 0;
  color: var(--ba-text, #282a30);
  font-size: 20px;
  font-weight: 800;
  text-align: center;
}

.ba-main-copy {
  color: var(--ba-gray-text, #87898e);
}

.ba-main-copy h2 {
  margin: 0 0 10px;
  color: var(--ba-text, #282a30);
}

.ba-contact-shell {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(320px, 1.2fr);
  gap: 28px;
  padding: 34px 0 48px;
}

.ba-contact-copy {
  align-self: start;
}

.ba-contact-copy p {
  color: var(--ba-gray-text, #87898e);
  font-size: 17px;
  line-height: 1.65;
}

.ba-contact-copy a:not(.ba-button) {
  color: var(--ba-primary, #b9a074);
  font-weight: 800;
}

.ba-contact-card {
  padding: clamp(20px, 4vw, 34px);
}

.ba-form-note {
  margin: 14px 0 0;
  color: var(--ba-gray-text, #87898e);
  font-size: 14px;
}

.ba-form-note.err {
  color: #9f2f2f;
}

.ba-form-note.ok {
  color: #1d6f3f;
}

@media (max-width: 760px) {
  .ba-hero,
  .ba-contact-shell {
    grid-template-columns: 1fr;
  }

  .ba-hero {
    display: grid;
  }
}

/* 0.95.0 public page/listing parity additions. */
.ba-mobile-heading {
  display: none;
  color: #000;
  font-size: 20px;
  font-weight: 700;
}

.ba-top-links {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(220px, 0.8fr);
  gap: 18px;
  margin-top: 16px;
}

.ba-top-links > div {
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #eaeaea;
}

.ba-top-links__heading {
  background: #b9a074;
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  padding: 10px 14px;
}

.ba-top-links__heading--dark {
  background: #282a30;
}

.ba-top-links ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0;
  padding: 14px;
  list-style: none;
}

.ba-top-links li,
.ba-top-links a {
  color: #282a30;
  font-size: 15px;
  font-weight: 700;
}

.ba-all-locations {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.ba-location-country > h2 {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0 0 8px;
  border-bottom: 1px solid #d1d5db;
  color: #282a30;
  font-size: 18px;
  font-weight: 900;
  line-height: 2;
}

.ba-location-country > h2 a {
  color: #282a30;
}

.ba-location-country > h2 span:last-of-type {
  color: #6b7280;
  font-size: 18px;
}

.ba-location-country img {
  width: auto;
  height: 22px;
}

.ba-states-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 10px 16px;
}

.ba-state-column {
  min-width: 0;
}

.ba-state-column h3 {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0 0 4px;
  color: #282a30;
  font-size: 15px;
  font-weight: 800;
}

.ba-state-column h3 a:first-child {
  min-width: 0;
  overflow: hidden;
  color: #282a30;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-state-column h3 span {
  color: #87898e;
  font-size: 13px;
}

.ba-state-column h3 img,
.ba-city-row img {
  height: 20px;
}

.ba-cities-list {
  display: grid;
  gap: 3px;
}

.ba-city-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 5px;
  color: #87898e;
  font-size: 14px;
}

.ba-city-row a:first-child {
  min-width: 0;
  overflow: hidden;
  color: #282a30;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-listing-page {
  padding: 28px 0 56px;
}

.ba-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  color: #87898e;
  font-size: 14px;
}

.ba-breadcrumbs a {
  color: #9b8256;
  font-weight: 700;
}

.ba-listing-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 14px;
}

.ba-listing-header p {
  margin: 0 0 4px;
  color: #9b8256;
  font-size: 14px;
  font-weight: 800;
}

.ba-listing-header h1 {
  margin: 0;
  color: #282a30;
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.1;
}

.ba-listing-header__meta {
  display: flex;
  flex: 0 0 auto;
  gap: 12px;
  align-items: center;
}

.ba-listing-header__meta strong {
  color: #87898e;
  font-size: 15px;
}

.ba-list-switch {
  flex: 0 0 auto;
  border: 0;
  border-radius: 0;
}

.ba-list-switch button {
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #282a30;
  cursor: pointer;
}

.ba-list-switch svg {
  width: 20px;
  height: 20px;
}

.ba-listing-list {
  display: grid;
  gap: 8px;
}

.ba-listing-card {
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #eaeaea;
}

.ba-listing-card--premium {
  box-shadow: inset 0 0 0 2px #b9a074;
}

.ba-listing-card__link {
  display: flex;
  position: relative;
  width: 100%;
  gap: 8px;
  padding: 6px;
  color: inherit;
}

.ba-listing-card__image {
  position: relative;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  overflow: hidden;
  border-radius: 6px;
  background: #f5f5f5;
}

.ba-listing-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ba-listing-card__badges {
  display: none;
}

.ba-listing-card__body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
}

.ba-listing-card h2 {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
}

.ba-listing-card h2 span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-listing-card h2 small {
  flex: 0 0 auto;
  color: #87898e;
  font-size: 13px;
}

.ba-listing-card__meta {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  color: #87898e;
  font-size: 13px;
}

.ba-listing-card__meta span {
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  gap: 5px;
  align-items: center;
}

.ba-listing-card__meta svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: #282a30;
}

.ba-listing-card__more {
  display: none;
  color: #b9a074;
  font-size: 13px;
  text-decoration: underline;
}

.ba-pagination {
  display: flex;
  overflow: hidden;
  align-items: stretch;
  margin-top: 18px;
  border: 1px solid #eaeaea;
  border-radius: 999px;
  background: #fff;
}

.ba-pagination ul {
  display: flex;
  flex: 1;
  justify-content: center;
  gap: 4px;
  margin: 0;
  padding: 4px;
  list-style: none;
}

.ba-pagination a,
.ba-pagination span {
  display: inline-flex;
  min-width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  color: #282a30;
  font-size: 15px;
  font-weight: 700;
  padding: 0 9px;
}

.ba-pagination span[aria-current='page'] {
  background: #9b8256;
  color: #fff;
}

.ba-pagination__edge {
  min-width: 80px !important;
  border-radius: 0 !important;
}

.ba-pagination__dots {
  display: inline-flex;
  align-items: center;
  color: #87898e;
  padding: 0 2px;
}

.ba-status-block {
  border: 1px solid #eaeaea;
  border-radius: 8px;
  background: #fff;
  color: #87898e;
  padding: 16px;
}

@media (min-width: 640px) {
  .ba-listing-card__image {
    flex-basis: 80px;
    width: 80px;
    height: 80px;
  }

  .ba-listing-card__more {
    display: inline-flex;
    margin-left: auto;
  }
}

@media (min-width: 900px) {
  .ba-listing-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .ba-mobile-heading {
    display: block;
  }

  .ba-top-links {
    grid-template-columns: 1fr;
  }

  .ba-states-list {
    grid-template-columns: 1fr;
  }

  .ba-listing-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .ba-pagination__edge {
    min-width: 48px !important;
    font-size: 0;
  }

  .ba-pagination__edge[rel='prev']::before {
    content: '<';
    font-size: 18px;
  }

  .ba-pagination__edge[rel='next']::before {
    content: '>';
    font-size: 18px;
  }
}

/* v0.96 detail/search parity slice */
.ba-detail-shell,
.ba-search-page {
  width: min(1180px, calc(100% - 24px));
  margin: 0 auto;
  padding: 8px 0 32px;
}

.ba-ad-detail__nav {
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  margin: 4px 0 12px;
  border: 1px solid #b9a074;
  color: #282a30;
}

.ba-ad-detail__nav h1 {
  overflow: hidden;
  margin: 0;
  padding: 0 10px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-ad-detail__nav-button,
.ba-ad-detail__nav-spacer {
  display: inline-flex;
  flex: 0 0 82px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border-right: 1px solid #b9a074;
  color: #282a30;
  font-size: 15px;
  font-weight: 700;
}

.ba-ad-detail__nav-spacer {
  border-right: 0;
  border-left: 1px solid #b9a074;
}

.ba-ad-detail__gallery {
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
  border-radius: 0 0 18px 18px;
}

.ba-ad-detail__mobile-title {
  display: none;
  overflow: hidden;
  background: #000;
  color: #fff;
  font-weight: 700;
  padding: 7px 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-ad-detail__image-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.ba-ad-detail__image {
  position: relative;
  display: block;
  min-height: 190px;
  overflow: hidden;
  border-radius: 0 0 18px 18px;
  background: #eaeaea;
}

.ba-ad-detail__image--hero {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 388px;
}

.ba-ad-detail__image img,
.ba-ad-detail__empty-image {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.ba-ad-detail__empty-image {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  border-radius: 0 0 18px 18px;
  background: #fff;
  color: #87898e;
  box-shadow: inset 0 0 0 1px #eaeaea;
}

.ba-ad-detail__premium,
.ba-ad-detail__more-photos,
.ba-ad-detail__counter {
  position: absolute;
  z-index: 2;
  border-radius: 999px;
  background: #fff;
  color: #282a30;
  font-weight: 800;
  line-height: 1;
  padding: 8px 12px;
}

.ba-ad-detail__premium {
  top: 8px;
  left: 8px;
  background: #f7f1dc;
  color: #9b8256;
  text-transform: uppercase;
}

.ba-ad-detail__more-photos {
  right: 14px;
  bottom: 14px;
  font-size: 42px;
  opacity: 0.82;
}

.ba-ad-detail__counter {
  display: none;
  top: 38px;
  right: 8px;
}

.ba-ad-detail__goldbar {
  margin: 12px 0;
  border-radius: 18px;
  background: #b9a074;
  color: #282a30;
  padding: 12px;
}

.ba-ad-detail__goldbar ul {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ba-ad-detail__goldbar li {
  display: flex;
  min-width: 220px;
  flex: 1 1 220px;
  gap: 12px;
  align-items: center;
  margin: 0;
}

.ba-ad-detail__icon {
  display: inline-flex;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #282a30;
  color: #b9a074;
  padding: 8px;
}

.ba-ad-detail__icon svg {
  width: 20px;
  height: 20px;
}

.ba-ad-detail__goldbar small,
.ba-ad-detail__goldbar strong {
  display: block;
}

.ba-ad-detail__goldbar small {
  color: #282a30;
  font-size: 13px;
}

.ba-ad-detail__goldbar strong {
  color: #282a30;
  font-size: 16px;
  font-weight: 800;
}

.ba-ad-detail__goldbar a {
  color: #282a30;
  text-decoration: underline;
}

.ba-ad-detail__text {
  margin-top: 12px;
  border-radius: 18px;
  background: #fff;
  color: #282a30;
  padding: 18px;
  box-shadow: inset 0 0 0 1px #eaeaea;
}

.ba-ad-detail__text h2 {
  margin: 0 0 12px;
  font-size: 22px;
}

.ba-ad-detail__text p {
  margin: 0 0 12px;
}

.ba-contact-fab {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: none;
}

.ba-contact-fab__button {
  display: inline-flex;
  width: 56px;
  height: 56px;
  align-items: center;
  justify-content: center;
  border: 1px solid #000;
  border-radius: 999px;
  background: #b9a074;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
}

.ba-contact-fab__button img {
  width: 22px;
  height: 22px;
}

.ba-search-page__header {
  margin: 0 0 18px;
}

.ba-search-page__header h1 {
  margin: 0 0 6px;
  color: #282a30;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.1;
}

.ba-search-page__header p {
  margin: 0;
  color: #87898e;
}

.ba-search-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  margin: 0 0 18px;
}

.ba-search-form input[type='search'] {
  width: 100%;
  border: 1px solid #eaeaea;
  border-radius: 999px;
  background: #fff;
  color: #282a30;
  font: inherit;
  padding: 13px 18px;
}

.ba-search-form button {
  border: 0;
  border-radius: 999px;
  background: #282a30;
  color: #b9a074;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: 13px 22px;
}

.ba-search-page__cities,
.ba-search-page__listings {
  margin: 0 0 24px;
}

.ba-search-page__cities h2 {
  margin: 0 0 10px;
}

.ba-search-fallback-form {
  display: grid;
  grid-template-columns: minmax(130px, 0.7fr) minmax(180px, 1.5fr) minmax(180px, 1fr) auto;
  gap: 8px 12px;
  align-items: end;
  margin: 0 0 24px;
}

.ba-search-fallback-field {
  display: grid;
  gap: 6px;
}

.ba-search-fallback-field label {
  color: #282a30;
  font-size: 0.875rem;
  font-weight: 700;
}

.ba-search-fallback-form select,
.ba-search-fallback-form input,
.ba-search-fallback-form button {
  min-height: 44px;
  border: 1px solid #d7d7d7;
  border-radius: 8px;
  background: #fff;
  color: #282a30;
  font: inherit;
  padding: 9px 12px;
}

.ba-search-fallback-form button {
  border-color: #282a30;
  background: #282a30;
  color: #e3c47c;
  cursor: pointer;
  font-weight: 800;
}

.ba-search-page__cities a {
  display: flex;
  min-height: 44px;
  flex-direction: column;
  justify-content: center;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  background: #fff;
  padding: 8px 12px;
}

.ba-search-page__cities a span {
  color: #6d6f74;
  font-size: 0.8125rem;
}

.ba-search-fallback-link {
  color: #8a273a;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ba-search-page__cities ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 767px) {
  .ba-search-fallback-form {
    grid-template-columns: 1fr;
  }
}

.ba-search-page__cities a,
.ba-search-page__cities span {
  display: inline-flex;
  border: 1px solid #eaeaea;
  border-radius: 999px;
  background: #fff;
  color: #282a30;
  font-weight: 700;
  padding: 8px 12px;
}

.ba-link-underline {
  text-decoration: underline;
}

.ba-link-underline-hover-off:hover {
  text-decoration: none;
}

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

@media (max-width: 760px) {
  .ba-detail-shell,
  .ba-search-page {
    width: min(100% - 16px, 1180px);
  }

  .ba-ad-detail__nav {
    border: 0;
  }

  .ba-ad-detail__nav h1 {
    display: none;
  }

  .ba-ad-detail__nav-button,
  .ba-ad-detail__nav-spacer {
    display: none;
  }

  .ba-ad-detail__mobile-title {
    display: block;
  }

  .ba-ad-detail__image-grid {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .ba-ad-detail__image,
  .ba-ad-detail__image--hero {
    flex: 0 0 100%;
    min-height: 360px;
    scroll-snap-align: start;
  }

  .ba-ad-detail__counter {
    display: inline-flex;
  }

  .ba-ad-detail__more-photos {
    display: none;
  }

  .ba-ad-detail__goldbar ul {
    flex-direction: column;
  }

  .ba-ad-detail__goldbar li {
    width: 100%;
    min-width: 0;
  }

  .ba-contact-fab {
    display: block;
  }

  .ba-search-form {
    grid-template-columns: 1fr;
  }
}

/* v0.97 blog template parity slice */
.ba-blog-index,
.ba-blog-post-shell {
  background: #fff;
  color: #282a30;
  padding: 24px 0 42px;
}

.ba-blog-index,
.ba-blog-post {
  width: min(1280px, calc(100% - 32px));
  margin: 0 auto;
}

.ba-blog-index__heading {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.ba-blog-index__heading h1 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  border-bottom: 2px solid #9b8256;
  color: #282a30;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.1;
  padding-bottom: 8px;
}

.ba-blog-index__heading h1 img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  margin-right: -8px;
}

.ba-blog-index__heading h1 span {
  color: #5d5d5d;
  text-transform: uppercase;
}

.ba-blog-index__heading p {
  margin: 12px 0 0;
  color: #87898e;
  font-size: 17px;
}

.ba-blog-chips {
  display: flex;
  overflow-x: auto;
  gap: 8px;
  margin-top: 12px;
  padding-bottom: 6px;
  scrollbar-width: none;
}

.ba-blog-chips::-webkit-scrollbar {
  display: none;
}

.ba-blog-chip {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid #eaeaea;
  border-radius: 999px;
  background: #fff;
  color: #282a30;
  font-size: 14px;
  font-weight: 700;
  padding: 7px 12px;
}

.ba-blog-chip--active {
  background: #e5e7eb;
}

.ba-blog-grid {
  display: grid;
  max-width: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  margin: 32px auto 0;
}

.ba-blog-card {
  display: flex;
  overflow: hidden;
  min-height: 100%;
  flex-direction: column;
  border: 1px solid #eaeaea;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(40, 42, 48, 0.08);
}

.ba-blog-card__image {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #f5f5f5;
}

.ba-blog-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s ease;
}

.ba-blog-card:hover .ba-blog-card__image img {
  transform: scale(1.03);
}

.ba-blog-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px;
}

.ba-blog-card__meta {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  color: #000;
  font-size: 14px;
}

.ba-blog-card__meta strong {
  color: #b9a074;
}

.ba-blog-card__meta svg {
  width: 12px;
  height: 12px;
}

.ba-blog-card__title {
  margin: 8px 0 0;
  color: #282a30;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.12;
}

.ba-blog-card__title a {
  color: inherit;
}

.ba-blog-card__title a:hover {
  color: #9b8256;
}

.ba-blog-card__excerpt {
  flex: 1;
  margin: 8px 0 18px;
  color: #87898e;
  font-size: 16px;
  line-height: 1.55;
}

.ba-blog-card__more {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid #b9a074;
  border-radius: 999px;
  background: #b9a074;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  padding: 10px 14px;
}

.ba-blog-card__more svg {
  width: 16px;
  height: 16px;
}

.ba-blog-pagination {
  display: flex;
  overflow: hidden;
  align-items: stretch;
  margin-top: 48px;
  border: 1px solid #eaeaea;
  border-radius: 999px;
  background: #fff;
}

.ba-blog-pagination ul {
  display: flex;
  flex: 1;
  justify-content: center;
  gap: 4px;
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
  padding: 4px;
  list-style: none;
}

.ba-blog-pagination a,
.ba-blog-pagination span {
  display: inline-flex;
  min-width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  color: #282a30;
  font-size: 15px;
  font-weight: 700;
  padding: 0 9px;
}

.ba-blog-pagination span[aria-current='page'] {
  background: #9b8256;
  color: #fff;
}

.ba-blog-pagination__edge {
  min-width: 88px !important;
  height: auto !important;
  border-radius: 0 !important;
}

.ba-blog-post h1 {
  margin: 8px 0 0;
  color: #282a30;
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 800;
  line-height: 1.08;
}

.ba-blog-post__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
  color: #282a30;
}

.ba-blog-post__meta strong {
  color: #b9a074;
}

.ba-blog-post__hero {
  margin: 16px 0 24px;
}

.ba-blog-post__hero img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 18px;
  object-fit: cover;
  box-shadow: 0 16px 32px rgba(40, 42, 48, 0.16);
}

.ba-blog-post__excerpt {
  max-width: 900px;
  margin: 0 0 20px;
  color: #87898e;
  font-size: 20px;
  line-height: 1.55;
}

.ba-blog-post__content {
  max-width: 900px;
  color: #282a30;
  font-size: 18px;
  line-height: 1.75;
}

.ba-blog-post__content :where(h2, h3, h4) {
  color: #282a30;
  font-weight: 800;
  line-height: 1.2;
  margin: 28px 0 12px;
}

.ba-blog-post__content :where(p, ul, ol, blockquote) {
  margin: 0 0 16px;
}

.ba-blog-post__content a {
  color: #9b8256;
  text-decoration: underline;
}

.ba-blog-post__banners {
  margin-top: 40px;
}

@media (max-width: 900px) {
  .ba-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
}

@media (max-width: 640px) {
  .ba-blog-index,
  .ba-blog-post {
    width: min(100% - 24px, 1280px);
  }

  .ba-blog-index__heading h1 {
    font-size: 28px;
  }

  .ba-blog-index__heading h1 img {
    width: 32px;
    height: 32px;
  }

  .ba-blog-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ba-blog-pagination__edge {
    min-width: 48px !important;
    font-size: 0;
  }

  .ba-blog-pagination__edge[rel='prev']::before {
    content: '<';
    font-size: 18px;
  }

  .ba-blog-pagination__edge[rel='next']::before {
    content: '>';
    font-size: 18px;
  }
}

/* v0.98 hard visual parity gate slice */
.ba-warning-modal {
  backdrop-filter: blur(2px);
}

.ba-warning-modal__panel p:last-child {
  margin-bottom: 0;
}

.ba-page {
  padding: 32px 0 48px;
}

.ba-page--narrow {
  max-width: 860px;
}

.ba-page__header {
  margin-bottom: 20px;
}

.ba-page__header--inside {
  margin-bottom: 16px;
}

.ba-page__header h1,
.ba-empty-state h1 {
  margin: 0 0 12px;
  color: var(--ba-ink, #282a30);
  font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem);
  font-weight: 800;
  line-height: 1.05;
}

.ba-page__header p,
.ba-empty-state p {
  color: var(--ba-muted, #87898e);
}

.ba-faq-card,
.ba-cms-page,
.ba-empty-state {
  border: 1px solid var(--ba-border, #eaeaea);
  border-radius: 24px;
  background: #fff;
  padding: clamp(20px, 4vw, 36px);
}

.ba-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  color: var(--ba-muted, #87898e);
  font-size: 13px;
}

.ba-breadcrumbs a {
  color: var(--ba-ink, #282a30);
  font-weight: 700;
}

.ba-status-block {
  border: 1px solid var(--ba-border, #eaeaea);
  border-radius: 16px;
  background: #fff;
  padding: 16px;
  color: var(--ba-muted, #87898e);
}

.ba-empty-state__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}

.ba-cms-page .cms-content p,
.ba-cms-page .cms-content__empty {
  color: var(--ba-muted, #87898e);
}

.ba-footer__similar a + a::before {
  content: '';
}

@media (max-width: 640px) {
  .ba-page {
    padding: 24px 0 36px;
  }

  .ba-empty-state__actions .ba-button {
    width: 100%;
  }
}

/* v0.99 exact high-traffic public parity slice */
.countries-cities-block {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
}

.countries-cities-block .one-block-70,
.countries-cities-block .one-block {
  overflow: hidden;
  border: 1px solid var(--ba-border, #eaeaea);
  border-radius: 12px;
  background: #fff;
}

.countries-cities-block .one-block-70 {
  flex: 0 0 58%;
}

.countries-cities-block .one-block {
  flex: 1;
}

.countries-cities-block .heading {
  padding: 10px 14px;
  background: var(--ba-gold, #b9a074);
  color: #fff;
  font-weight: 800;
}

.countries-cities-block .heading.black {
  background: var(--ba-ink, #282a30);
}

.countries-cities-block ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
  margin: 0;
  padding: 12px 14px;
  list-style: none;
  color: var(--ba-ink, #282a30);
}

.countries-cities-block a {
  color: var(--ba-ink, #282a30);
  font-weight: 600;
}

.states-list .one-col {
  min-width: 0;
}

.location-directory > .mt-2 > h2 {
  margin-bottom: 12px;
}

.location-directory > .mt-2 {
  margin-top: 0;
}

.home-location-section .location-directory {
  margin-top: 0;
}

.home-location-section .location-directory + .location-directory {
  margin-top: 16px;
}

.states-list .one-col h2 span,
.states-list .one-col h3 span,
.states-list .one-col .city span {
  color: #4b5563;
}

nav.legacy-breadcrumb-strip.breadcrumbs .legacy-breadcrumb-strip__item,
nav.legacy-breadcrumb-strip.breadcrumbs .legacy-breadcrumb-strip__item > a {
  color: #4b5563;
}

nav.legacy-breadcrumb-strip.breadcrumbs {
  display: block;
  width: 100%;
  min-height: 30px;
  margin: 0;
  padding: 3px;
  text-overflow: unset;
  overflow: hidden;
  overflow-x: auto;
  white-space: nowrap;
}

nav.legacy-breadcrumb-strip.breadcrumbs > ul.legacy-breadcrumb-strip__list {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 1240px;
  min-height: 24px;
  margin: 0 auto;
  padding: 0 20px;
}

nav.legacy-breadcrumb-strip.breadcrumbs .legacy-breadcrumb-strip__item {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  font-size: 14px;
  line-height: 18px;
}

@media screen and (max-width: 991px) {
  nav.legacy-breadcrumb-strip.breadcrumbs > ul.legacy-breadcrumb-strip__list {
    padding: 0 16px;
  }
}

.main .grid a.text-custom-15 .text-customGrayText {
  color: #4b5563;
}

.cities-list .city img {
  height: 20px;
}

.listing-card {
  position: relative;
  min-width: 0;
}

.listing-image-frame {
  overflow: hidden;
}

/* No placeholder fill: the reference's card image is transparent, so a broken
   or slow image shows the card behind it rather than a grey block. */
.listing-image {
  background: transparent;
}

.listing-card-title,
.listing-card-meta {
  min-width: 0;
}

.listing-card-meta {
  line-height: 1.2;
}

.listing-card-meta svg {
  flex: none;
}

.desc-box {
  overflow-y: auto;
  scrollbar-width: thin;
}

.desc-box h2 {
  margin: 0 0 12px;
  color: #282a30;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.25;
}

.desc-box p {
  margin: 0 0 16px;
  color: #87898e;
  font-size: 18px;
  line-height: 1.5;
}

.customStyle ul {
  list-style: disc;
  margin: 1rem 0;
  padding-left: 0.75rem;
}

.customStyle ul li {
  list-style-position: inside;
  margin: 0.5rem 0;
}

.scrollbox.desc-box :where(h1, h2, h3) {
  color: #282a30;
  font-weight: 600;
  line-height: 1.25;
}

.scrollbox.desc-box h1 {
  margin: 0 0 16px;
  font-size: 36px;
}

.scrollbox.desc-box h2 {
  margin: 0 0 12px;
  font-size: 24px;
}

.scrollbox.desc-box h3 {
  margin: 0 0 10px;
  font-size: 20px;
}

.scrollbox.desc-box p {
  margin: 0 0 16px;
  color: #87898e;
  font-size: 18px;
  line-height: 1.5;
}

.scrollbox.desc-box ul,
.scrollbox.desc-box ol {
  margin: 0 0 16px 20px;
  padding: 0;
  color: #87898e;
  font-size: 18px;
  line-height: 1.5;
}

.scrollbox.desc-box ul {
  list-style: disc;
}

.scrollbox.desc-box ol {
  list-style: decimal;
}

.scrollbox.desc-box li {
  margin: 4px 0;
}

body.wrap footer,
body.wrap .bg-customDarkGray,
body.wrap .bg-customGray {
  position: relative;
}

@media (max-width: 1023px) {
  body.wrap header.header > .row.fixed {
    position: fixed;
  }
}

body.ba-public footer.footer {
  padding-top: 0;
}

body.wrap header.header .header-mobile-navigation {
  position: fixed;
}

@media (max-width: 860px) {
  body.wrap .header.open-navigation .header-mobile-navigation,
  body.wrap .header.open-navigation .mask {
    top: 64px !important;
  }
}

@media (max-width: 900px) {
  .countries-cities-block {
    flex-direction: column;
  }

  .countries-cities-block .one-block-70,
  .countries-cities-block .one-block {
    flex-basis: auto;
  }

  .states-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .breadcrumbs {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
  }

  .countries-cities-block {
    display: none;
  }

  .states-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 8px;
    column-gap: 0;
  }
}

@media (min-width: 1024px) {
  body.wrap .header > .header-nav {
    min-height: 56px;
  }

  /* Reference public header: the first row is 68px (`py-3` around the 44px
     button row) and the category strip is 56px (`py-2` around a 40px list). */
  body.wrap .header > .row:first-child {
    min-height: 68px;
  }

  .states-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 32px;
    row-gap: 16px;
  }
}

@media (min-width: 1280px) {
  .states-list {
    column-gap: 48px;
  }
}

/* ---------------------------------------------------------------------------
   Listing switch: list (thumbnail row) parity with BunnyAgent.

   The reference swaps the whole utility list on every card element when the
   visitor switches to the list view, so a row never keeps the thumbnail
   hover styling: the title loses its black bar (and the gold group-hover bar
   that comes with it) and the facts row drops to dark grey text with 20px
   icons separated by hairlines. The Go renderer keeps the semantic classes in
   the markup and swaps utilities in script, so the same outcome is expressed
   here for the `.listing-list` state. Values are the reference's own utilities:
   text-customGrayText #87898e, border-customBorderColor #eaeaea,
   text-customTextColor #282a30 and text-s 12px.
   ------------------------------------------------------------------------- */
.listing-list .listing-card-title--escort,
.listing-list .listing-card-title--business,
.listing-list .group:hover .listing-card-title--escort,
.listing-list .group:hover .listing-card-title--business {
  background-color: transparent;
}

.listing-list [data-listing-card-meta] {
  background-color: transparent;
  padding: 0;
}

.listing-list [data-listing-card-facts] {
  display: flex;
  align-items: center;
}

.listing-list [data-listing-card-facts] > div {
  display: flex;
  align-items: center;
  margin-right: 8px;
  padding-right: 8px;
  border-right: 1px solid #eaeaea;
}

.listing-list [data-listing-card-facts] > div:last-child {
  margin-right: 0;
  padding-right: 0;
  border-right: 0;
}

.listing-list [data-listing-card-facts] svg {
  width: 20px;
  height: 20px;
  margin-right: 4px;
  color: #282a30;
  stroke: #282a30;
}

/* Only the icons that paint with a fill switch to the dark tone; the outlined
   ones (rate, location) must stay unfilled or they render as solid blobs. */
.listing-list [data-listing-card-facts] svg:not([fill="none"]) {
  fill: #282a30;
}

.listing-list [data-listing-card-facts] span {
  color: #87898e;
  font-size: 12px;
  font-weight: 400;
}
