/* COVER_SQUARE_MAXH — product + article covers: max height = width (square) */
.product-image,
.product-card .product-image,
.home-shop-grid .product-image,
.product-recommend-grid .product-image,
.product-catalog .product-image,
.blog-card-media,
.blog-card .blog-card-media,
.brand-card .blog-card-media,
.post-card-media,
.article-card-media,
.entry-cover,
.blog-popular-thumb,
.post-hero-media,
.article-cover,
.single-cover,
.featured-image,
.page-hero-media,
.blog-hero-media {
  aspect-ratio: 1 / 1 !important;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.product-image img,
.product-card .product-image img,
.blog-card-media img,
.brand-card .blog-card-media img,
.post-card-media img,
.article-card-media img,
.entry-cover img,
.blog-popular-thumb img,
.post-hero-media img,
.article-cover img,
.single-cover img,
.featured-image img,
.page-hero-media img,
.blog-hero-media img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Product detail main image */
.product-gallery-main,
.product-gallery-zoom,
[data-product-gallery] .product-gallery-main {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
.product-gallery-main img,
.product-gallery-zoom img,
[data-product-gallery] .product-gallery-main img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Post/article featured cover (common Hugo / custom class names) */
article .post-cover,
.single .cover,
.blog-single-cover,
.post-featured,
.entry-thumbnail {
  aspect-ratio: 1 / 1 !important;
  width: 100%;
  overflow: hidden;
}
article .post-cover img,
.single .cover img,
.blog-single-cover img,
.post-featured img,
.entry-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

@media (max-width: 900px) {
  .product-gallery-main img,
  .product-gallery-zoom img {
    height: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }
}
