/* Image dimensions must never depend on the intrinsic height of the source file. */
.pro-product-image,
.pro-preview-image {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    flex: none;
    padding: 0;
    overflow: hidden;
    background: #fff;
}
.pro-product-image > img,
.pro-preview-image > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    padding: clamp(.75rem, 2vw, 1.35rem);
    box-sizing: border-box;
    object-fit: contain;
    object-position: center;
}
.pro-product-card h2 { min-height: 2.8em; line-height: 1.4; }
.pro-product-card h2 a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pro-product-body > p.text-secondary {
    min-height: 4.2em;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pro-product-detail-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #fff;
}
.pro-product-detail-image > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: clamp(1rem, 3vw, 2rem);
    box-sizing: border-box;
    object-fit: contain;
    object-position: center;
}
@media (max-width: 575px) {
    .pro-product-image > img, .pro-preview-image > img { padding: .7rem; }
}
