/* Borderless publisher advertising. Artwork keeps its original proportions. */
.ad-slot { width: 100%; max-width: var(--container-content); margin: var(--space-8) auto; padding: 0; border: 0; background: transparent; box-shadow: none; }
.ad-slot__label, .compact-sponsor__label { display: block; margin: 0 0 var(--space-2); color: var(--color-text-muted); font: 600 0.65rem var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; text-align: center; }
.ad-slot__shell { display: block; position: relative; }
.ad-slot__track { position: relative; display: flex; align-items: center; gap: var(--space-6); padding: 0; scroll-padding: 0; scrollbar-width: none; }
.ad-slot__track::-webkit-scrollbar { display: none; }
.ad-slot__creative { flex: 0 0 min(15rem, 100%); min-width: 0; border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
.ad-slot__creative img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; border: 0; border-radius: 0; }
.ad-slot__control { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 2.75rem; height: 3.25rem; min-height: 2.75rem; padding: 0; border: 0; border-radius: 0; background: color-mix(in srgb, white 90%, transparent); color: var(--color-action-dark); box-shadow: none; font-size: 1.8rem; }
.ad-slot__control--previous { left: var(--space-2); }
.ad-slot__control--next { right: var(--space-2); }
.ad-slot__control:hover { background: var(--color-action); color: var(--color-on-action); }
.ad-slot--inline[data-ad-ready] .ad-slot__shell { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem; gap: var(--space-2); }
.ad-slot--inline .ad-slot__control { position: static; transform: none; }
.ad-slot--banner { max-width: 45.5rem; }
.ad-slot--banner .ad-slot__creative { flex-basis: 100%; }
.ad-slot--banner .ad-slot__creative img { width: 100%; height: 100%; aspect-ratio: 980 / 300; object-fit: contain; }
.ad-slot--banner[data-banner-ready] .ad-slot__track { display: grid; aspect-ratio: 980 / 300; overflow: hidden; touch-action: pan-y; }
.ad-slot--banner[data-banner-ready] .ad-slot__creative { grid-area: 1 / 1; width: 100%; height: 100%; animation: ad-reveal 700ms ease; }
.ad-banner-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; margin-top: var(--space-2); }
.ad-banner-controls button { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; min-height: 2.75rem; padding: 0; border: 0; background: transparent; box-shadow: none; }
.ad-banner-controls button span { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--color-text-muted); }
.ad-banner-controls button[aria-current="true"] span { background: var(--color-accent); transform: scale(1.5); }
.ad-banner-controls button:hover span { background: var(--color-action); }
.compact-sponsor, .browse-hero .compact-sponsor { width: min(100%, 12rem); max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.compact-sponsor a { display: block; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.compact-sponsor img { display: block; width: 100%; height: auto; object-fit: contain; border: 0; border-radius: 0; }
.browse-hero .compact-sponsor__label { color: var(--color-on-action); }
.filter-panel-heading .compact-sponsor { flex: 0 1 12rem; }
.listing-card-ad { width: min(100%, 15rem); justify-self: center; align-self: start; }
.listing-card-ad__creative { border: 0; border-radius: 0; background: transparent; box-shadow: none; aspect-ratio: auto; }
.listing-card-ad__creative img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.ad-video { position: relative; padding: 0; border: 0; background: transparent; }
.ad-video__media { width: 100%; aspect-ratio: 16 / 9; }
.ad-video__media button { border: 0; border-radius: 0; background: transparent; }
.ad-video__media button img { height: 100%; object-fit: contain; }
.ad-video__media button span { top: 50%; left: 50%; bottom: auto; transform: translate(-50%, -50%); display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; font-size: 1rem; background: var(--color-action-dark); }
.ad-video > .ad-video__close, .ad-video > .ad-video__fallback { position: absolute; z-index: 3; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; min-height: 2.75rem; padding: 0; border: 0; border-radius: 0; color: var(--color-on-action); background: var(--color-action-dark); font-size: 1.5rem; text-decoration: none; }
.ad-video__close { top: 0; right: 0; }
.ad-video__fallback { bottom: 0; right: 0; }
/* Preserve keyboard focus without decorative frames around advertisements. */
.ad-slot a:focus-visible, .compact-sponsor a:focus-visible, .listing-card-ad a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: -3px; }
@keyframes ad-reveal { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 75rem) {
  .market-finder { grid-template-columns: minmax(0, 1fr) minmax(0, 12rem); }
  .market-finder-form { grid-column: 1 / -1; }
}
@media (max-width: 45rem) {
  .market-finder { grid-template-columns: 1fr; }
  .market-finder .compact-sponsor { justify-self: center; }
  .filter-panel-heading .compact-sponsor { flex-basis: auto; }
  .ad-slot { width: 100%; }
  .page > .ad-slot { width: calc(100% - 1.5rem); }
  .ad-slot__track { gap: var(--space-4); }
  .ad-slot--inline[data-ad-ready] .ad-slot__shell { grid-template-columns: 1fr 1fr; }
  .ad-slot--inline .ad-slot__track { grid-column: 1 / -1; grid-row: 1; }
  .ad-slot--inline .ad-slot__control { grid-row: 2; }
  .ad-slot--inline .ad-slot__control--next { justify-self: end; }
  .ad-slot__creative { flex-basis: min(15rem, 100%); }
  .ad-banner-controls button { width: 1.5rem; height: 1.5rem; min-height: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ad-slot__track { scroll-behavior: auto; }
  .ad-slot--banner[data-banner-ready] .ad-slot__creative { animation: none; }
}
