/*--------------------------------------------------------------
# Media
--------------------------------------------------------------*/
img {
    transition: opacity 1s;
    opacity: 1
}

.col-inner>.img:not(:last-child),.col>.img:not(:last-child) {
    margin-bottom: 1em
}

.img {
    position: relative
}

.img .img-inner {
    position: relative;
    overflow: hidden
}

.img,.img img {
    width: 100%
}

.overlay {
    position: absolute;
    top: 0;
    bottom: 0;
    height: 100%;
    left: -1px;
    right: -1px;
    background-color: rgba(0,0,0,0.15);
    transition: transform .3s, opacity .6s;
    pointer-events: none
}

.img .caption {
    position: absolute;
    transition: transform .5s;
    -ms-transform: translateY(100%);
    transform: translateY(100%);
    max-height: 100% !important;
    overflow-y: auto;
    bottom: 0;
    padding: 4px 10px;
    font-size: 14px;
    color: #FFF;
    width: 100%;
    background-color: rgba(0,0,0,0.3)
}

.img .caption-show,.img:hover .caption {
    -ms-transform: translateY(0);
    transform: translateY(0)
}

.lazy-load {
    background-color: rgba(0,0,0,0.03)
}

.has-format,.video-fit,.image-cover {
    position: relative;
    height: auto;
    overflow: hidden;
    padding-top: 100%;
    background-position: 50% 50%;
    background-size: cover
}

.video-fit {
    padding-top: 56.5%
}

.video-fit video,.video-fit iframe,img.back-image,.image-cover img,.has-format img,.has-equal-box-heights .box-image img {
    z-index: 1;
    right: 0;
    width: 100%;
    height: 100%;
    bottom: 0;
    left: 0;
    top: 0;
    position: absolute;
    object-position: 50% 50%;
    object-fit: cover;
    font-family: 'object-fit: cover;'
}

.has-equal-box-heights .box-image {
    padding-top: 100%
}

.video-fit iframe {
    object-fit: fill
}

.image-tools {
    padding: 10px;
    position: absolute
}

.image-tools a:last-child {
    margin-bottom: 0
}

.image-tools a.button {
    display: block
}

.image-tools.bottom.left {
    padding-top: 0;
    padding-right: 0
}

.image-tools.top.right {
    padding-bottom: 0;
    padding-left: 0
}

.image-tools .cart-icon {
    position: absolute;
    left: 10px;
    margin: 5px;
    bottom: 100%
}

.image-tools .wishlist-button:hover {
    background-color: var(--alert-color);
    border-color: var(--alert-color)
}

.map-height {
    height: 400px
}

.map-inner {
    background-color: #fff;
    background-color: rgba(255,255,255,0.9);
    padding: 20px
}

a.hotspot {
    background-color: #000;
    color: #FFF;
    border-radius: 99px;
    opacity: .8;
    font-weight: bolder;
    display: block;
    padding: 0;
    line-height: 1.5em;
    text-align: center;
    height: 1.5em;
    width: 1.5em;
    transition: all .3s
}

a.hotspot i {
    font-size: .8em
}

a.hotspot:hover {
    opacity: 1;
    color: #000 !important;
    background-color: #fff !important
}

.message-box {
    padding-left: 30px;
    padding-right: 30px;
    background-color: #f1f1f1
}

.message-box.dark {
    background-color: #333
}

.message-box .col,.message-box .col-inner,.message-box .row {
    padding-top: 0 !important;
    padding-bottom: 0 !important
}

.payment-icons .payment-icon {
    display: inline-block;
    opacity: .6;
    transition: opacity .3s;
    border-radius: 5px;
    background-color: rgba(0,0,0,0.1);
    padding-bottom: 0;
    padding: 3px 5px 5px;
    margin: 3px 3px 0
}

.payment-icons .payment-icon svg {
    vertical-align: middle;
    height: 20px;
    width: auto !important
}

.payment-icons .payment-icon:hover {
    opacity: 1
}

.dark .payment-icons .payment-icon {
    background-color: rgba(255,255,255,0.1)
}

.dark .payment-icons .payment-icon svg {
    fill: #FFF
}

@media only screen and (max-device-width: 1024px) {
    .image-tools {
        opacity:1 !important;
        padding: 5px
    }
}