/* p1450108174213-listing-surface-contract-v1
   Shared public listing contract: bounded media, persistent wishlist icon,
   dense search rows and customer-facing provider metrics. Loaded last. */

/* Wishlist DOM is stable everywhere; only state attributes/classes change. */
.heart-button[data-basket-heart-button]{
  color:#08275b!important;
}
.heart-button[data-basket-heart-button] .aw-heart-icon[data-basket-heart-icon]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:20px!important;
  height:20px!important;
  fill:transparent!important;
  stroke:#08275b!important;
  stroke-width:1.85!important;
}
.heart-button[data-basket-heart-button] .aw-heart-icon[data-basket-heart-icon] path{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  vector-effect:non-scaling-stroke;
}
.heart-button[data-basket-heart-button][aria-pressed="true"] .aw-heart-icon[data-basket-heart-icon],
.heart-button[data-basket-heart-button].is-saved .aw-heart-icon[data-basket-heart-icon]{
  fill:currentColor!important;
  stroke:currentColor!important;
}

/* Provider hero: customer-relevant catalog count + freshness, no technical offer counter. */
.provider-profile-page .provider-profile-metrics{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,.72fr)!important;
  gap:0 28px!important;
  align-items:stretch!important;
}
.provider-profile-page .provider-profile-metrics > article{
  min-height:0!important;
  padding:18px 0!important;
  border:0!important;
  border-top:1px solid rgba(21,54,83,.14)!important;
  border-bottom:1px solid rgba(21,54,83,.14)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.provider-profile-page .provider-profile-metric-primary strong{
  font-variant-numeric:tabular-nums!important;
}

/* Provider rows: the heart form is an overlay, never a flow row above the image. */
.provider-profile-page .provider-offer-card-v3{
  overflow:hidden!important;
}
.provider-profile-page .provider-offer-media{
  box-sizing:border-box!important;
  overflow:visible!important;
  isolation:isolate!important;
}
.provider-profile-page .provider-offer-media > .product-heart-form{
  position:absolute!important;
  top:2px!important;
  right:2px!important;
  z-index:5!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
.provider-profile-page .provider-offer-media > .product-heart-form .heart-button{
  --aw-heart-size:32px!important;
}
.provider-profile-page .provider-offer-media > a:not(.heart-button){
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.provider-profile-page .provider-offer-media img,
.provider-profile-page .provider-offer-media .product-image-placeholder{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:84px!important;
  max-height:84px!important;
  margin:auto!important;
  object-fit:contain!important;
}

/* Search: bounded editorial content keeps the desktop row below the 190px contract. */
.search-page:not(.provider-search-page) .search-result-list{gap:8px!important}
.search-page:not(.provider-search-page) .search-result-item{
  min-height:142px!important;
  padding-block:11px!important;
  gap:14px!important;
  border-radius:12px!important;
  box-shadow:none!important;
}
.search-page:not(.provider-search-page) .search-result-main{gap:3px!important;min-width:0!important}
.search-page:not(.provider-search-page) .search-result-title{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
  max-height:2.56em!important;
}
.search-page:not(.provider-search-page) .search-result-manufacturer,
.search-page:not(.provider-search-page) .search-result-meta{
  margin:0!important;
  line-height:1.25!important;
}
.search-page:not(.provider-search-page) .search-result-highlights{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:3px 10px!important;
  margin:1px 0!important;
  padding:0!important;
  list-style:none!important;
  min-height:0!important;
}
.search-page:not(.provider-search-page) .search-result-highlights li{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--aw-ui-muted)!important;
  font-size:.73rem!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:min(36ch,48%)!important;
}
.search-page:not(.provider-search-page) .search-result-pricebox.search-result-pricebox-v2{
  gap:2px!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
.search-page:not(.provider-search-page) .search-result-cta{margin-top:4px!important;min-height:38px!important}

/* Shared media containment on public product cards. */
:where(.category-product-card,.detail-related-card,.deal-product-card,.portal-product-card) .product-media{
  box-sizing:border-box!important;
  overflow:hidden!important;
}
:where(.category-product-card,.detail-related-card,.deal-product-card,.portal-product-card) .product-media img,
:where(.category-product-card,.detail-related-card,.deal-product-card,.portal-product-card) .product-media .product-image-placeholder{
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
}

/* Flatten the shared secondary listing cards without touching commerce semantics. */
:where(.category-product-card,.detail-related-card,.deal-product-card){
  box-shadow:none!important;
  transform:none!important;
}
.category-product-list .category-product-card{
  border-radius:0!important;
  border-left:0!important;
  border-right:0!important;
  border-top:0!important;
  border-bottom:1px solid rgba(21,54,83,.12)!important;
  background:transparent!important;
}
.category-product-list{gap:0!important}
.entity-product-grid .detail-related-card,
.deals-product-grid .deal-product-card{
  border-color:rgba(21,54,83,.11)!important;
  border-radius:12px!important;
  background:#fff!important;
}

/* Category "noindex" is an SEO state, not a reason to make valid product rows look unfinished. */
.category-page .category-hero:not(.category-hero-pending){
  box-shadow:none!important;
}
.category-page .category-empty-public{
  box-shadow:none!important;
}

@media(max-width:820px){
  .provider-profile-page .provider-profile-metrics{grid-template-columns:1fr!important;gap:0!important}
  .provider-profile-page .provider-profile-metrics > article + article{border-top:0!important}
}
@media(max-width:680px){
  .provider-profile-page .provider-offer-media > .product-heart-form{top:0!important;right:0!important}
  .provider-profile-page .provider-offer-media > .product-heart-form .heart-button{--aw-heart-size:30px!important}
  .search-page:not(.provider-search-page) .search-result-item{min-height:0!important}
  .search-page:not(.provider-search-page) .search-result-highlights li{max-width:100%!important}
}
html[data-aw-contrast="dark"] .heart-button[data-basket-heart-button]{color:#dce9f5!important}
html[data-aw-contrast="dark"] .heart-button[data-basket-heart-button] .aw-heart-icon[data-basket-heart-icon]{stroke:currentColor!important}
@media(forced-colors:active){
  .heart-button[data-basket-heart-button] .aw-heart-icon[data-basket-heart-icon]{stroke:ButtonText!important}
}
