/**
 * QI Product V3
 *
 * IMPORTANT:
 * Keep Flatsome native product row / columns intact.
 * This file changes only visual presentation.
 */


/* =========================================================
   ROOT
   ========================================================= */

body.single-product #main {
    background: #fff;
}

body.single-product .product-main {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
}


/* =========================================================
   NATIVE FLATSOME ROW
   DO NOT CHANGE DISPLAY / GRID / FLEX MODEL
   ========================================================= */

@media (min-width: 850px) {

    body.single-product
    .product-main
    .row.content-row {

        max-width: 1180px;

        margin-left: auto !important;
        margin-right: auto !important;
    }


    body.single-product
    .product-gallery {

        padding-right: 34px !important;
    }


    body.single-product
    .product-info {

        padding-left: 34px !important;
        padding-right: 0 !important;
    }

}


/* =========================================================
   GALLERY
   ========================================================= */

body.single-product
.product-gallery
.product-images {

    background: transparent !important;

    border: 0 !important;

    border-radius: 0 !important;

    box-shadow: none !important;
}


body.single-product
.product-gallery
.woocommerce-product-gallery__image {

    background: #fff;
}


body.single-product
.product-gallery
.woocommerce-product-gallery__image > a {

    display: flex;

    align-items: center;
    justify-content: center;
}


body.single-product
.product-gallery
.woocommerce-product-gallery__image img {

    display: block;

    width: auto !important;

    max-width: 92% !important;

    height: auto !important;

    margin: 0 auto;

    object-fit: contain;
}


@media (min-width: 850px) {

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {

        max-height: 540px !important;
    }

}


/* Zoom */

body.single-product
.product-gallery
.zoom-button {

    display: flex !important;

    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius: 50% !important;

    background: #fff !important;

    color:
        var(--qi-brand, #0B4F73) !important;

    box-shadow:
        0 4px 14px
        rgba(13,47,67,.07);
}


/* =========================================================
   PRODUCT INFO
   ========================================================= */

body.single-product
.product-info {

    color:
        var(--qi-text, #173B4A);

    background: transparent !important;

    border: 0 !important;

    border-radius: 0 !important;

    box-shadow: none !important;
}


/* Breadcrumb */

body.single-product
.product-info
.breadcrumbs {

    margin:
        0 0 10px !important;

    color:
        var(--qi-muted, #6D8189);

    font-size:
        11px !important;

    line-height: 1.5;
}


body.single-product
.product-info
.breadcrumbs a {

    color:
        var(--qi-muted, #6D8189) !important;
}


body.single-product
.product-info
.breadcrumbs a:hover {

    color:
        var(--qi-primary, #0F9693) !important;
}


/* =========================================================
   TITLE
   ========================================================= */

body.single-product
.product-info
.product-title {

    margin: 0 !important;

    color:
        var(--qi-dark, #0D2F43) !important;

    font-size:
        clamp(27px, 2.1vw, 34px) !important;

    font-weight: 800 !important;

    line-height: 1.25 !important;

    letter-spacing: -.025em;

    word-break: keep-all;
}


body.single-product
.product-info
.is-divider {

    width: 34px;

    height: 3px;

    margin:
        14px 0 16px !important;

    background:
        var(--qi-primary, #0F9693) !important;

    opacity: 1;
}


/* =========================================================
   MAIN PRICE
   ========================================================= */

body.single-product
.product-info
> .price {

    margin:
        0 0 15px !important;

    color:
        var(--qi-dark, #0D2F43) !important;

    font-size:
        25px !important;

    font-weight:
        850 !important;

    line-height: 1.25;
}


body.single-product
.product-info
.price .amount {

    color: inherit !important;

    font-weight: inherit !important;
}


/* =========================================================
   SHORT DESCRIPTION
   ========================================================= */

body.single-product
.product-short-description {

    max-width: 620px;

    margin-bottom: 18px;

    color:
        var(--qi-text, #173B4A);

    font-size: 12.5px;

    line-height: 1.75;
}


body.single-product
.product-short-description p {

    margin:
        0 0 7px;
}


/* SVG check icon */

body.single-product
.qi-product-check {

    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 17px;
    height: 17px;

    margin-right: 6px;

    vertical-align: -3px;
}


body.single-product
.qi-product-check svg {

    width: 17px;
    height: 17px;

    fill: none;

    stroke:
        var(--qi-primary, #0F9693);

    stroke-width: 1.8;

    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   PURCHASE FORM
   ========================================================= */

body.single-product
form.cart {

    margin-top: 18px !important;

    padding-top: 20px;

    border-top:
        1px solid
        var(--qi-border, #D8E6E9);
}


/* =========================================================
   VARIATIONS
   ========================================================= */

body.single-product
.variations {

    width: 100%;

    margin:
        0 0 15px !important;

    border: 0 !important;
}


body.single-product
.variations tr,

body.single-product
.variations th,

body.single-product
.variations td {

    border: 0 !important;
}


body.single-product
.variations th,

body.single-product
.variations td {

    padding:
        5px 0 !important;

    vertical-align: middle;
}


body.single-product
.variations th.label {

    width: 55px;

    padding-right:
        10px !important;

    color:
        var(--qi-text, #173B4A);

    font-size: 11px;

    font-weight: 750;
}


body.single-product
.variations select {

    width: 100% !important;

    height: 44px;

    margin: 0 !important;

    padding:
        0 42px 0 13px;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius: 8px;

    background-color: #fff;

    color:
        var(--qi-text, #173B4A);

    font-size: 12px;

    box-shadow: none !important;
}


body.single-product
.variations select:focus {

    border-color:
        var(--qi-primary, #0F9693) !important;

    box-shadow:
        0 0 0 3px
        rgba(15,150,147,.07) !important;
}


body.single-product
.reset_variations {

    color:
        var(--qi-muted, #6D8189) !important;

    font-size: 9px !important;
}


/* =========================================================
   VARIATION PRICE
   ========================================================= */

body.single-product
.single_variation {

    margin:
        0 0 13px;
}


body.single-product
.woocommerce-variation-price
.price {

    margin: 0 !important;

    color:
        var(--qi-dark, #0D2F43) !important;

    font-size:
        20px !important;

    font-weight:
        800 !important;
}


/* =========================================================
   CART CONTROLS
   ========================================================= */

body.single-product
.woocommerce-variation-add-to-cart,

body.single-product
form.cart:not(.variations_form) {

    display: flex !important;

    flex-wrap: wrap;

    align-items: stretch;

    gap: 9px;
}


/* =========================================================
   QUANTITY
   ========================================================= */

body.single-product
.quantity {

    display: flex;

    overflow: hidden;

    height: 44px;

    margin: 0 !important;

    border:
        1px solid
        var(--qi-border, #D8E6E9);

    border-radius: 8px;

    background: #fff;
}


body.single-product
.quantity .qty {

    width: 40px !important;

    height: 42px !important;

    margin: 0 !important;

    border-top: 0 !important;
    border-bottom: 0 !important;

    border-left:
        1px solid
        #E8EFF1 !important;

    border-right:
        1px solid
        #E8EFF1 !important;

    color:
        var(--qi-text, #173B4A);

    font-size: 12px;

    box-shadow: none !important;
}


/*
 * Flatsome quantity minus / plus:
 * hide text symbols and use SVG background icons.
 */

body.single-product
.quantity .minus,

body.single-product
.quantity .plus {

    width: 31px !important;
    min-width: 31px !important;

    height: 42px !important;
    min-height: 42px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    border-radius: 0 !important;

    color: transparent !important;

    font-size: 0 !important;

    text-indent: -9999px;

    background-color:
        var(--qi-surface, #F6FAFB) !important;

    background-position: center !important;

    background-repeat: no-repeat !important;

    background-size: 14px 14px !important;

    box-shadow: none !important;
}


body.single-product
.quantity .minus {

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173B4A' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") !important;
}


body.single-product
.quantity .plus {

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173B4A' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") !important;
}


/* =========================================================
   PRIMARY ACTIONS
   ========================================================= */

body.single-product
.single_add_to_cart_button,

body.single-product
.buy-now-button,

body.single-product
.ux-buy-now-button {

    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    min-height: 44px !important;

    margin: 0 !important;

    padding:
        0 20px !important;

    border-radius:
        8px !important;

    color: #fff !important;

    font-size:
        11.5px !important;

    font-weight:
        750 !important;

    line-height: 1 !important;

    text-shadow: none !important;

    box-shadow: none !important;
}


/* Add cart */

body.single-product
.single_add_to_cart_button {

    border:
        1px solid
        var(--qi-primary, #0F9693) !important;

    background:
        var(--qi-primary, #0F9693) !important;
}


body.single-product
.single_add_to_cart_button:hover {

    border-color:
        var(--qi-primary-hover, #0B7D7B) !important;

    background:
        var(--qi-primary-hover, #0B7D7B) !important;
}


/* Buy now */

body.single-product
.buy-now-button,

body.single-product
.ux-buy-now-button {

    border:
        1px solid
        var(--qi-brand, #0B4F73) !important;

    background:
        var(--qi-brand, #0B4F73) !important;
}


body.single-product
.buy-now-button:hover,

body.single-product
.ux-buy-now-button:hover {

    border-color:
        var(--qi-dark, #0D2F43) !important;

    background:
        var(--qi-dark, #0D2F43) !important;
}


/* =========================================================
   ASSURANCE STRIP
   ========================================================= */

.qi-product-assurance {

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));

    gap: 0;

    overflow: hidden;

    margin-top: 15px;

    border:
        1px solid
        var(--qi-border, #D8E6E9);

    border-radius: 8px;

    background:
        var(--qi-surface, #F6FAFB);
}


.qi-product-assurance-item {

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 5px;

    min-height: 39px;

    padding:
        5px 6px;

    border-right:
        1px solid
        var(--qi-border, #D8E6E9);

    color:
        var(--qi-text, #173B4A);

    font-size: 8.5px;

    font-weight: 650;

    text-align: center;
}


.qi-product-assurance-item:last-child {

    border-right: 0;
}


.qi-product-assurance-item svg {

    flex:
        0 0 13px;

    width: 13px;
    height: 13px;

    fill: none;

    stroke:
        var(--qi-primary, #0F9693);

    stroke-width: 1.7;

    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   LINE SECONDARY ACTION
   ========================================================= */

body.single-product
.product-info
a[href*="lin.ee"],

body.single-product
.product-info
a[href*="line.me"] {

    display: flex !important;

    align-items: center;
    justify-content: center;

    width: 100%;

    min-height: 42px;

    margin:
        11px 0 0 !important;

    padding:
        0 16px !important;

    border:
        1px solid
        rgba(15,150,147,.32) !important;

    border-radius:
        8px !important;

    background:
        var(--qi-soft-teal, #EAF7F6) !important;

    color:
        var(--qi-primary-hover, #0B7D7B) !important;

    font-size:
        10.5px !important;

    font-weight:
        750 !important;

    text-decoration: none !important;

    box-shadow: none !important;
}


body.single-product
.product-info
a[href*="lin.ee"]:hover,

body.single-product
.product-info
a[href*="line.me"]:hover {

    border-color:
        var(--qi-primary, #0F9693) !important;

    background:
        #DFF3F1 !important;
}


/* =========================================================
   PRODUCT DETAILS
   ========================================================= */

body.single-product
.product-footer {

    margin-top: 0 !important;
}


body.single-product
.woocommerce-tabs {

    padding:
        5px 0 46px !important;
}


/* Tabs */

body.single-product
.woocommerce-tabs
.product-tabs {

    max-width: 980px;

    margin:
        0 auto 27px !important;

    border: 0 !important;

    border-bottom:
        1px solid
        var(--qi-border, #D8E6E9) !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li {

    margin:
        0 25px 0 0 !important;

    border: 0 !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li a {

    position: relative;

    padding:
        14px 0 12px !important;

    color:
        var(--qi-text, #173B4A) !important;

    font-size:
        11px !important;

    font-weight:
        750 !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li.active a::after {

    content: "";

    position: absolute;

    right: 0;
    bottom: -1px;
    left: 0;

    height: 3px;

    border-radius:
        999px 999px 0 0;

    background:
        var(--qi-primary, #0F9693);
}


/* Article width */

body.single-product
.woocommerce-tabs
.tab-panels {

    max-width: 900px;

    margin: 0 auto;

    padding:
        0 18px;
}


body.single-product
.woocommerce-Tabs-panel {

    color:
        var(--qi-text, #173B4A);

    font-size: 15px;

    line-height: 1.88;
}


body.single-product
.woocommerce-Tabs-panel h2 {

    margin:
        31px 0 11px;

    color:
        var(--qi-dark, #0D2F43);

    font-size: 25px;

    font-weight: 800;

    line-height: 1.35;
}


body.single-product
.woocommerce-Tabs-panel h2:first-child {

    margin-top: 0;
}


body.single-product
.woocommerce-Tabs-panel h3 {

    margin:
        26px 0 9px;

    color:
        var(--qi-dark, #0D2F43);

    font-size: 20px;

    font-weight: 750;

    line-height: 1.4;
}


body.single-product
.woocommerce-Tabs-panel p {

    margin:
        0 0 15px;
}


body.single-product
.woocommerce-Tabs-panel ul,

body.single-product
.woocommerce-Tabs-panel ol {

    margin:
        8px 0 20px 21px;
}


body.single-product
.woocommerce-Tabs-panel li {

    margin-bottom: 7px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 849px) {

    body.single-product
    .product-main {

        padding-top:
            10px !important;

        padding-bottom:
            26px !important;
    }


    /*
     * Gallery remains native column.
     */

    body.single-product
    .product-gallery {

        margin-bottom:
            17px !important;
    }


    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image > a {

        min-height: 275px;

        padding:
            6px 0;
    }


    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {

        max-width:
            88% !important;

        max-height:
            270px !important;
    }


    /*
     * Product info.
     */

    body.single-product
    .product-info {

        padding-top:
            0 !important;
    }


    body.single-product
    .product-info
    .breadcrumbs {

        margin-bottom:
            7px !important;

        font-size:
            9.5px !important;
    }


    body.single-product
    .product-info
    .product-title {

        font-size:
            20px !important;

        line-height:
            1.32 !important;
    }


    body.single-product
    .product-info
    .is-divider {

        margin:
            11px 0 12px !important;
    }


    body.single-product
    .product-info
    > .price {

        margin-bottom:
            12px !important;

        font-size:
            20px !important;
    }


    body.single-product
    .product-short-description {

        margin-bottom:
            13px;

        font-size:
            10.5px;

        line-height:
            1.62;
    }


    /*
     * Purchase zone.
     */

    body.single-product
    form.cart {

        margin-top:
            13px !important;

        padding-top:
            14px;
    }


    body.single-product
    .variations {

        margin-bottom:
            11px !important;
    }


    body.single-product
    .variations th.label {

        width: 47px;

        font-size: 9.5px;
    }


    body.single-product
    .variations select {

        height: 41px;

        font-size: 10.5px;
    }


    body.single-product
    .woocommerce-variation-price
    .price {

        font-size:
            18px !important;
    }


    /*
     * Quantity + two actions in one row.
     */

    body.single-product
    .woocommerce-variation-add-to-cart,

    body.single-product
    form.cart:not(.variations_form) {

        display: grid !important;

        grid-template-columns:
            88px
            minmax(0,1fr)
            minmax(0,1fr);

        gap: 6px;
    }


    body.single-product
    .quantity {

        width: 88px;

        height: 42px;
    }


    body.single-product
    .quantity .minus,

    body.single-product
    .quantity .plus {

        width: 26px !important;
        min-width: 26px !important;

        height: 40px !important;
        min-height: 40px !important;
    }


    body.single-product
    .quantity .qty {

        width: 36px !important;

        height: 40px !important;
    }


    body.single-product
    .single_add_to_cart_button,

    body.single-product
    .buy-now-button,

    body.single-product
    .ux-buy-now-button {

        min-width: 0 !important;

        min-height:
            42px !important;

        padding:
            0 7px !important;

        font-size:
            10px !important;
    }


    /*
     * Assurance 2 × 2.
     */

    .qi-product-assurance {

        grid-template-columns:
            repeat(2, minmax(0,1fr));

        margin-top:
            12px;
    }


    .qi-product-assurance-item {

        min-height:
            36px;

        border-bottom:
            1px solid
            var(--qi-border, #D8E6E9);
    }


    .qi-product-assurance-item:nth-child(2n) {

        border-right: 0;
    }


    .qi-product-assurance-item:nth-last-child(-n+2) {

        border-bottom: 0;
    }


    /*
     * Description.
     */

    body.single-product
    .woocommerce-tabs {

        padding:
            10px 0 30px !important;
    }


    body.single-product
    .woocommerce-tabs
    .product-tabs {

        margin:
            0 13px 20px !important;
    }


    body.single-product
    .woocommerce-tabs
    .product-tabs li a {

        padding:
            12px 0 10px !important;

        font-size:
            10.5px !important;
    }


    body.single-product
    .woocommerce-tabs
    .tab-panels {

        padding:
            0 14px;
    }


    body.single-product
    .woocommerce-Tabs-panel {

        font-size:
            13px;

        line-height:
            1.8;
    }


    body.single-product
    .woocommerce-Tabs-panel h2 {

        margin-top:
            25px;

        font-size:
            20px;
    }


    body.single-product
    .woocommerce-Tabs-panel h3 {

        margin-top:
            22px;

        font-size:
            17px;
    }

}


/* =========================================================
   NARROW PHONES
   ========================================================= */

@media (max-width: 370px) {

    body.single-product
    .woocommerce-variation-add-to-cart,

    body.single-product
    form.cart:not(.variations_form) {

        grid-template-columns:
            86px 1fr;
    }


    body.single-product
    .buy-now-button,

    body.single-product
    .ux-buy-now-button {

        grid-column:
            1 / -1;
    }

}

/* === QI PRODUCT V3.1 BALANCE START === */


/* =========================================================
   DESKTOP PROPORTION
   Keep Flatsome flex layout, only tune column ratio.
   ========================================================= */

@media (min-width: 850px) {

    body.single-product
    .product-main
    .row.content-row {

        max-width:
            1160px !important;

        align-items:
            flex-start !important;
    }


    body.single-product
    .product-gallery {

        flex-basis:
            46% !important;

        max-width:
            46% !important;

        padding-right:
            28px !important;
    }


    body.single-product
    .product-info {

        flex-basis:
            54% !important;

        max-width:
            54% !important;

        padding-left:
            28px !important;
    }

}


/* =========================================================
   PRODUCT IMAGE STAGE
   ========================================================= */

body.single-product
.product-gallery
.product-images {

    overflow:
        hidden;

    padding:
        28px;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius:
        16px !important;

    background:
        #F7FAFB !important;
}


body.single-product
.product-gallery
.woocommerce-product-gallery__image {

    background:
        transparent !important;
}


@media (min-width: 850px) {

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image > a {

        min-height:
            455px !important;
    }


    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {

        max-width:
            96% !important;

        max-height:
            410px !important;
    }

}


/* =========================================================
   INFO RHYTHM
   ========================================================= */

@media (min-width: 850px) {

    body.single-product
    .product-info {

        padding-top:
            7px !important;
    }

}


body.single-product
.product-info
.product-title {

    max-width:
        650px;
}


body.single-product
.product-short-description {

    margin-bottom:
        16px !important;
}


/* =========================================================
   PURCHASE MODULE
   Only the transaction area becomes a card.
   ========================================================= */

body.single-product
form.cart {

    margin-top:
        18px !important;

    padding:
        17px 17px 16px !important;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius:
        12px;

    background:
        #F8FBFB;
}


/*
 * Remove the old top divider because the card already
 * provides visual separation.
 */

body.single-product
form.cart {

    border-top:
        1px solid
        var(--qi-border, #D8E6E9) !important;
}


/* Variation selector */

body.single-product
.variations {

    margin-bottom:
        12px !important;
}


body.single-product
.variations select {

    background:
        #ffffff !important;
}


/* Selected price */

body.single-product
.single_variation {

    margin:
        5px 0 13px !important;
}


body.single-product
.woocommerce-variation-price {

    padding-top:
        11px;

    border-top:
        1px solid
        #E2ECEE;
}


/* =========================================================
   BUY ACTIONS
   ========================================================= */

@media (min-width: 850px) {

    body.single-product
    .single_add_to_cart_button,

    body.single-product
    .buy-now-button,

    body.single-product
    .ux-buy-now-button {

        min-width:
            112px;
    }

}


/* =========================================================
   ASSURANCE
   Remove the "table" feeling.
   ========================================================= */

.qi-product-assurance {

    gap:
        8px !important;

    overflow:
        visible !important;

    margin-top:
        13px !important;

    border:
        0 !important;

    border-radius:
        0 !important;

    background:
        transparent !important;
}


.qi-product-assurance-item {

    min-height:
        34px !important;

    padding:
        5px 7px !important;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius:
        8px;

    background:
        #ffffff;

    font-size:
        8.5px !important;
}


/* =========================================================
   LINE = SECONDARY ACTION
   ========================================================= */

body.single-product
.product-info
a[href*="lin.ee"],

body.single-product
.product-info
a[href*="line.me"] {

    min-height:
        40px !important;

    margin-top:
        10px !important;

    background:
        transparent !important;

    border:
        1px solid
        var(--qi-primary, #0F9693) !important;

    color:
        var(--qi-primary-hover, #0B7D7B) !important;
}


/* =========================================================
   PRODUCT DETAIL TAB
   Fix long teal line / stretched active item.
   ========================================================= */

body.single-product
.woocommerce-tabs
.product-tabs {

    display:
        flex !important;

    justify-content:
        flex-start !important;

    align-items:
        flex-end !important;

    gap:
        24px;

    border-bottom:
        1px solid
        var(--qi-border, #D8E6E9) !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li {

    flex:
        0 0 auto !important;

    width:
        auto !important;

    margin:
        0 !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li a {

    position:
        relative;

    display:
        inline-flex !important;

    width:
        auto !important;

    padding:
        13px 0 11px !important;
}


body.single-product
.woocommerce-tabs
.product-tabs li.active a::after {

    right:
        auto !important;

    left:
        0 !important;

    width:
        34px !important;

    height:
        3px !important;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

body.single-product
.woocommerce-tabs
.tab-panels {

    max-width:
        860px !important;
}


body.single-product
.woocommerce-Tabs-panel {

    font-size:
        14px !important;

    line-height:
        1.85 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 849px) {

    body.single-product
    .product-gallery
    .product-images {

        padding:
            16px !important;

        border-radius:
            12px !important;
    }


    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image > a {

        min-height:
            245px !important;
    }


    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {

        max-height:
            235px !important;

        max-width:
            92% !important;
    }


    /*
     * Purchase card should be compact on phone.
     */

    body.single-product
    form.cart {

        padding:
            13px !important;

        border-radius:
            10px;
    }


    /*
     * Keep purchase controls in one clean row.
     */

    body.single-product
    .woocommerce-variation-add-to-cart,

    body.single-product
    form.cart:not(.variations_form) {

        grid-template-columns:
            76px
            minmax(0,1fr)
            minmax(0,1fr) !important;

        gap:
            6px !important;
    }


    body.single-product
    .quantity {

        width:
            76px !important;
    }


    body.single-product
    .quantity .minus,

    body.single-product
    .quantity .plus {

        width:
            22px !important;

        min-width:
            22px !important;
    }


    body.single-product
    .quantity .qty {

        width:
            32px !important;
    }


    /*
     * Assurance cards 2 x 2.
     */

    .qi-product-assurance {

        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;

        gap:
            6px !important;
    }


    .qi-product-assurance-item {

        border:
            1px solid
            var(--qi-border, #D8E6E9) !important;
    }


    /*
     * Product detail should look like a section title,
     * not a navigation bar.
     */

    body.single-product
    .woocommerce-tabs
    .product-tabs {

        margin:
            0 14px 18px !important;

        border-bottom:
            1px solid
            var(--qi-border, #D8E6E9) !important;
    }


    body.single-product
    .woocommerce-tabs
    .product-tabs li a {

        padding:
            12px 0 10px !important;
    }


    body.single-product
    .woocommerce-tabs
    .product-tabs li.active a::after {

        width:
            30px !important;
    }


    body.single-product
    .woocommerce-tabs
    .tab-panels {

        padding:
            0 22px !important;
    }


    body.single-product
    .woocommerce-Tabs-panel {

        font-size:
            12.5px !important;

        line-height:
            1.82 !important;
    }


    body.single-product
    .woocommerce-Tabs-panel h2 {

        font-size:
            19px !important;
    }

}

/* === QI PRODUCT V3.1 BALANCE END === */

/* === QI PRODUCT ADD TO CART NOTICE V1 START === */

/*
 * Product add-to-cart success notice.
 *
 * Actual DOM:
 * .woocommerce-message.message-wrapper
 *   .message-container.container.success-color.medium-text-center
 *     i.icon-checkmark
 *     text
 *     a.button.wc-forward
 */
body.single-product
.woocommerce-message.message-wrapper {
	margin: 18px 0 24px !important;
	padding: 0 !important;

	border: 0 !important;

	background: transparent !important;

	color: inherit !important;
}


/*
 * Main success card.
 */
body.single-product
.woocommerce-message.message-wrapper
.message-container {
	display: flex;

	align-items: center;

	gap: 12px;

	width: calc(100% - 30px);
	max-width: 1180px;

	min-height: 58px;

	margin: 0 auto !important;

	padding:
		11px
		12px
		11px
		14px !important;

	border:
		1px solid
		#D6E9E8;

	border-radius:
		12px;

	background:
		#F5FBFA;

	color:
		var(--qi-text, #173B4A) !important;

	font-size:
		15px;

	font-weight:
		600;

	line-height:
		1.55;

	text-align:
		left !important;

	box-shadow:
		0 5px 18px
		rgba(13, 47, 67, 0.045);

	box-sizing:
		border-box;
}


/*
 * Existing Flatsome success icon.
 */
body.single-product
.woocommerce-message.message-wrapper
.icon-checkmark {
	display: inline-flex;

	flex:
		0 0 30px;

	align-items: center;
	justify-content: center;

	width: 30px;
	height: 30px;

	margin: 0 !important;

	border-radius:
		50%;

	background:
		#E2F6F3;

	color:
		var(--qi-primary, #0F9693) !important;

	font-size:
		15px;

	line-height:
		1;
}


/*
 * View cart button.
 */
body.single-product
.woocommerce-message.message-wrapper
a.button.wc-forward {
	display: inline-flex !important;

	flex:
		0 0 auto;

	align-items: center;
	justify-content: center;

	min-height: 38px;

	margin:
		0
		0
		0
		auto !important;

	padding:
		9px
		15px !important;

	border:
		1px solid
		var(--qi-primary, #0F9693) !important;

	border-radius:
		8px !important;

	background:
		#FFFFFF !important;

	color:
		var(--qi-primary, #0F9693) !important;

	font-size:
		13px !important;

	font-weight:
		700;

	line-height:
		1.2 !important;

	text-decoration:
		none !important;

	text-transform:
		none !important;

	box-shadow:
		none !important;
}

body.single-product
.woocommerce-message.message-wrapper
a.button.wc-forward:hover {
	border-color:
		var(--qi-primary-hover, #0B7D7B) !important;

	background:
		var(--qi-primary, #0F9693) !important;

	color:
		#FFFFFF !important;
}


/*
 * WooCommerce AJAX timer element.
 */
body.single-product
.woocommerce-message.message-wrapper
.added-to-cart {
	display: none !important;
}


/*
 * Mobile.
 */
@media (max-width: 849px) {

	body.single-product
	.woocommerce-message.message-wrapper {
		margin:
			12px
			0
			16px !important;
	}

	body.single-product
	.woocommerce-message.message-wrapper
	.message-container {
		display: grid;

		grid-template-columns:
			30px
			minmax(0, 1fr);

		column-gap:
			10px;

		row-gap:
			10px;

		width:
			calc(100% - 24px);

		min-height:
			0;

		padding:
			12px !important;

		border-radius:
			11px;

		font-size:
			14px;

		line-height:
			1.55;
	}

	body.single-product
	.woocommerce-message.message-wrapper
	.icon-checkmark {
		grid-column:
			1;

		grid-row:
			1;

		align-self:
			start;

		width:
			28px;

		height:
			28px;

		flex-basis:
			28px;

		font-size:
			14px;
	}

	body.single-product
	.woocommerce-message.message-wrapper
	a.button.wc-forward {
		grid-column:
			1 / -1;

		width:
			100%;

		min-height:
			42px;

		margin:
			2px
			0
			0 !important;

		padding:
			10px
			14px !important;

		font-size:
			14px !important;
	}
}


/*
 * Small phones.
 */
@media (max-width: 380px) {

	body.single-product
	.woocommerce-message.message-wrapper
	.message-container {
		width:
			calc(100% - 20px);

		padding:
			11px !important;

		font-size:
			13px;
	}
}

/* === QI PRODUCT ADD TO CART NOTICE V1 END === */

/* === QI PRODUCT IMAGE FINAL V1 START === */

/*
 * Final product image stage.
 * Enlarges products whose source images contain large internal white margins.
 * Does not alter WooCommerce / Flatsome gallery behaviour.
 */

body.single-product
.product-gallery
.product-images {
    overflow: hidden !important;

    border:
        1px solid
        var(--qi-border, #D8E6E9) !important;

    border-radius:
        16px !important;

    background:
        #F7FAFB !important;
}

body.single-product
.product-gallery
.woocommerce-product-gallery__image {
    overflow: hidden;

    background:
        transparent !important;
}

body.single-product
.product-gallery
.woocommerce-product-gallery__image > a {
    display: flex;

    align-items: center;
    justify-content: center;

    overflow: hidden;
}


/* Desktop */
@media (min-width: 850px) {

    body.single-product
    .product-gallery
    .product-images {
        padding:
            24px !important;
    }

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image > a {
        height:
            455px !important;

        min-height:
            455px !important;
    }

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {
        width:
            auto !important;

        max-width:
            100% !important;

        max-height:
            410px !important;

        margin:
            0 auto !important;

        object-fit:
            contain;

        transform:
            scale(1.12);

        transform-origin:
            center center;
    }
}


/* Mobile */
@media (max-width: 849px) {

    body.single-product
    .product-gallery
    .product-images {
        padding:
            10px !important;

        border-radius:
            12px !important;
    }

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image > a {
        height:
            245px !important;

        min-height:
            245px !important;
    }

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {
        width:
            auto !important;

        max-width:
            100% !important;

        max-height:
            235px !important;

        margin:
            0 auto !important;

        object-fit:
            contain;

        transform:
            scale(1.28);

        transform-origin:
            center center;
    }
}


/* Small mobile */
@media (max-width: 380px) {

    body.single-product
    .product-gallery
    .woocommerce-product-gallery__image img {
        transform:
            scale(1.24);
    }
}

/* === QI PRODUCT IMAGE FINAL V1 END === */
