/*
 * Authoritative banner image fit layer.
 * Uploaded artwork of any source dimension fills the assigned ad slot without
 * internal whitespace. Applies to Sponsored Ads, Top Banner Ads, City Ads and
 * Recommended Ads across desktop and mobile layouts.
 */
.header-ad,
.header-ad a,
.banner-grid a,
.normal-banner-item,
.city-banner-item,
.recommended-links .rec-item,
.main-right .mini-section.recommended-links .rec-item{
  overflow:hidden!important;
}
.header-ad a,
.banner-grid a,
.normal-banner-item,
.city-banner-item,
.recommended-links .rec-item,
.main-right .mini-section.recommended-links .rec-item{
  display:flex!important;
  align-items:stretch!important;
  justify-content:stretch!important;
}
.header-ad img,
.banner-grid a>img,
.normal-banner-item>img,
.city-banner-item>img,
.recommended-links .rec-item>img,
.main-right .mini-section.recommended-links .rec-item>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  object-fit:fill!important;
  object-position:center!important;
  transform:none!important;
}
.banner-grid a:hover>img,
.normal-banner-item:hover>img,
.city-banner-item:hover>img,
.recommended-links .rec-item:hover>img{
  transform:none!important;
}
/* Keep every advertised slot visually consistent on narrow screens. */
@media(max-width:640px){
  .banner-grid a,
  .normal-banner-item,
  .city-banner-item,
  .recommended-links .rec-item{
    width:100%!important;
  }
}

/*
 * City-page banner slots use a highly specific legacy layout. These selectors
 * deliberately outrank that layout so each uploaded creative fills the complete
 * slot instead of being centred at its natural dimensions with white space.
 */
.city-hero-ad-row.has-city-banner-ads .city-banner-inline-wrap .city-banner-grid > a.city-banner-item,
.city-directory-page .city-banner-inline-wrap .city-banner-grid > a.city-banner-item,
.taxonomy-city-hero .city-banner-inline-wrap .city-banner-grid > a.city-banner-item{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:54px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
.city-hero-ad-row.has-city-banner-ads .city-banner-inline-wrap .city-banner-grid > a.city-banner-item > img,
.city-directory-page .city-banner-inline-wrap .city-banner-grid > a.city-banner-item > img,
.taxonomy-city-hero .city-banner-inline-wrap .city-banner-grid > a.city-banner-item > img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  object-fit:fill!important;
  object-position:center!important;
  transform:none!important;
}
