/* Swisse product-image standard v1.0 — 2026-11-08.
   Use the uncropped source. Square display frame, proportional fit, no hover swaps.
   Product artwork is never stretched, recoloured or generated. */
.swisse-product-frame {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #fff;
}
.swisse-product-image {
    display: block;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    object-position: center;
    background: #fff;
}
.swisse-product-frame > .swisse-product-image {
    width: 100%;
    height: 100%;
    padding: 5%;
    box-sizing: border-box;
}
.tpproduct__thumb:has(.swisse-product-frame) {
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
}
.tpproduct:hover .swisse-product-frame > .swisse-product-image,
.tpproduct__thumb:hover .swisse-product-image {
    transform: none !important;
    opacity: 1 !important;
}
.tpproduct__title { min-height: 3.1em; }
.swisse-gallery-frame {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    aspect-ratio: 1 / 1;
    background: #fff;
}
.swisse-gallery-frame > .swisse-product-image {
    width: 100%;
    height: 100%;
    padding: 3%;
    box-sizing: border-box;
}
.product-thumbnails img.swisse-product-image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    padding: 4px;
    box-sizing: border-box;
}
.quickview-content .thumbnail > .swisse-product-image {
    width: 100%;
    height: auto !important;
    aspect-ratio: 1 / 1;
    padding: 4%;
}
.swisse-product-image--compact {
    width: 100%;
    height: auto !important;
    aspect-ratio: 1 / 1;
    padding: 5%;
    box-sizing: border-box;
}
@media (max-width: 575.98px) {
    .swisse-product-frame > .swisse-product-image { padding: 4%; }
    .tpproduct__title { min-height: 3.8em; }
}

/* Each measured pack fits within 82% of the square, with source proportions intact. */
.swisse-product-frame, .swisse-gallery-frame { position: relative; overflow: hidden; }
.swisse-product-frame > .swisse-product-image[style*="--swisse-image-width"],
.swisse-gallery-frame > .swisse-product-image[style*="--swisse-image-width"] {
    position: absolute;
    width: var(--swisse-image-width) !important;
    height: var(--swisse-image-height) !important;
    left: var(--swisse-image-left);
    top: var(--swisse-image-top);
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: auto;
    transform: none !important;
    object-fit: contain !important;
}
.tpselectproduct__thumb.swisse-product-frame { width: 96px; flex: 0 0 96px; }

/* Landscape editorial graphics keep the entire composition and text. */
.swisse-editorial-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9;
    object-fit: contain !important;
    object-position: center;
    background: #fff;
}
@media (min-width: 360px) and (max-width: 767.98px) {
    .bb-product-items-wrapper > .row.row-cols-1 > .col { width: 50%; }
    .bb-product-items-wrapper .tpproduct__title {
        font-size: 14px;
        line-height: 1.45;
        min-height: 4.35em;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        overflow: hidden;
    }
}
