Hi,
Let me try to solve the mystery:
First, it has nothing to do with the "Safari bug". Actually, it happens in any browser.
If you look up the browser console, you'll find that it comes from CSS as follows:
and
This is inserted as a <style> tag in the <head> section:
And it's generated by the following code at the bottom of any views using the product image, like in your case "listing_img_title":
if(isset($this->rows[0]) && $this->rows[0]->product_id == $this->row->product_id) {
$css = '';
if((int)$this->image->main_thumbnail_y>0){
$css .= '
#'.$mainDivName.' .hikashop_product_image { height:'.(int)$this->image->main_thumbnail_y.'px; }';
}
if((int)$this->image->main_thumbnail_x>0){
$css .= '
#'.$mainDivName.' .hikashop_product_image_subdiv { width:'.(int)$this->image->main_thumbnail_x.'px; }';
}
$doc = JFactory::getDocument();
$doc->addStyleDeclaration($css);
}
Obviously, this "fixes" the container sizes depending on the settings in the HikaShop main configuration for images, basically "killing" responsiveness.
So, first thing to do: play with those settings, though it might not help. (Which is why I myself comment the above code out in a view override.)
Or override this CSS in your custom frontend CSS.
In this particular case, even if you did any of the above, your Joomla template is missing classic CSS for responsive images and similar content, such as
audio, canvas, img, svg, video {
max-width: 100%;
height: auto;
box-sizing: border-box;
}
So, you may want to add that, too (on template level?) and, for webp images in this case, also add a selector "picture > *".
Amen.