/* ================================================================
   PSYCHOHEAL SHOP
   SINGLE PRODUCT PAGE
================================================================ */

:root {
    --psp-primary: #22A6B3;
    --psp-primary-soft: #EAF8F9;
    --psp-primary-soft-2: #F2FBFB;

    --psp-dark: #132231;
    --psp-dark-soft: #253746;

    --psp-orange: #FF9F43;
    --psp-orange-soft: #FFF4E8;

    --psp-bg: #F7FAFA;
    --psp-white: #FFFFFF;

    --psp-text: #263746;
    --psp-text-soft: #657480;
    --psp-text-muted: #8A979F;

    --psp-border: #E3EBED;
    --psp-border-strong: #D5E0E3;

    --psp-shadow:
        0 18px 50px rgba(19, 34, 49, 0.07);

    --psp-shadow-soft:
        0 10px 30px rgba(19, 34, 49, 0.05);

    --psp-radius-xl: 28px;
    --psp-radius-lg: 22px;
    --psp-radius-md: 16px;
    --psp-radius-sm: 11px;
}


/* ================================================================
   GLOBAL PRODUCT PAGE
================================================================ */

.single-product {
    background:
        linear-gradient(
            180deg,
            #F9FBFB 0,
            #FFFFFF 520px
        );
}


.single-product .site-main,
.single-product main {
    overflow: visible;
}


.single-product .woocommerce {
    width: 100%;
}


.single-product .woocommerce div.product {
    color: var(--psp-text);
}


/* ================================================================
   BREADCRUMB
================================================================ */

.single-product .woocommerce-breadcrumb {
    width: min(1380px, calc(100% - 48px));

    margin:
        24px auto 18px !important;

    padding: 0;

    color: var(--psp-text-muted);

    font-size: 12px;
    font-weight: 500;

    line-height: 1.8;
}


.single-product .woocommerce-breadcrumb a {
    color: var(--psp-primary);

    font-weight: 700;

    transition: color 0.2s ease;
}


.single-product .woocommerce-breadcrumb a:hover {
    color: var(--psp-dark);
}


/* ================================================================
   MAIN PRODUCT WRAPPER
================================================================ */

.single-product
.woocommerce
div.product {
    width: min(1380px, calc(100% - 48px));

    margin:
        0 auto 70px;

    position: relative;
}


/* ================================================================
   PRODUCT TOP AREA
================================================================ */

.single-product
.woocommerce
div.product
> .woocommerce-product-gallery,
.single-product
.woocommerce
div.product
> .summary {
    position: relative;
}


/* ================================================================
   PRODUCT GALLERY
================================================================ */

.single-product
.woocommerce
div.product
.woocommerce-product-gallery {
    width: 48%;

    margin-bottom: 38px;

    padding: 22px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        var(--psp-radius-xl);

    background:
        linear-gradient(
            145deg,
            #FFFFFF 0%,
            #F5F9F9 100%
        );

    box-shadow:
        var(--psp-shadow);

    overflow: hidden;
}


/* Decorative corner */

.single-product
.woocommerce
div.product
.woocommerce-product-gallery::before {
    content: "";

    position: absolute;

    width: 150px;
    height: 150px;

    top: -65px;
    left: -65px;

    border-radius: 50%;

    background:
        rgba(34, 166, 179, 0.08);

    pointer-events: none;

    z-index: 0;
}


.single-product
.woocommerce
div.product
.woocommerce-product-gallery::after {
    content: "";

    position: absolute;

    width: 11px;
    height: 11px;

    top: 24px;
    left: 24px;

    border-radius: 50%;

    background:
        var(--psp-orange);

    box-shadow:
        0 0 0 7px
        rgba(255, 159, 67, 0.10);

    pointer-events: none;

    z-index: 2;
}


/* ================================================================
   MAIN PRODUCT IMAGE
================================================================ */

.single-product
.woocommerce-product-gallery__wrapper {
    position: relative;

    z-index: 1;
}


.single-product
.woocommerce-product-gallery__image {
    overflow: hidden;

    border-radius:
        20px;

    background:
        #FFFFFF;
}


.single-product
.woocommerce-product-gallery__image img {
    width: 100% !important;

    height: auto !important;

    object-fit: contain;

    border-radius:
        20px;

    transition:
        transform 0.35s ease;
}


.single-product
.woocommerce-product-gallery__image:hover img {
    transform:
        scale(1.025);
}


/* ================================================================
   GALLERY ZOOM ICON
================================================================ */

.single-product
.woocommerce-product-gallery__trigger {
    top: 18px !important;
    right: 18px !important;

    width: 45px !important;
    height: 45px !important;

    display: flex !important;
    align-items: center;
    justify-content: center;

    border-radius:
        14px !important;

    background:
        rgba(255, 255, 255, 0.94) !important;

    border:
        1px solid
        var(--psp-border) !important;

    box-shadow:
        var(--psp-shadow-soft);

    z-index: 20 !important;
}


/* ================================================================
   GALLERY THUMBNAILS
================================================================ */

.single-product
.flex-control-thumbs {
    margin-top:
        13px !important;

    display: flex;

    gap: 9px;
}


.single-product
.flex-control-thumbs li {
    flex: 0 0 72px !important;

    width: 72px !important;

    padding: 4px;

    overflow: hidden;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        12px;

    background:
        #FFFFFF;
}


.single-product
.flex-control-thumbs img {
    border-radius:
        8px;

    opacity: 0.58 !important;

    transition:
        opacity 0.2s ease,
        border-color 0.2s ease;
}


.single-product
.flex-control-thumbs img.flex-active {
    opacity: 1 !important;
}


/* ================================================================
   PRODUCT SUMMARY
================================================================ */

.single-product
.woocommerce
div.product
.summary {
    width: 48%;

    margin-bottom: 38px;

    padding:
        10px 8px 10px 30px;
}


/* ================================================================
   PRODUCT TITLE
================================================================ */

.single-product
.product_title {
    position: relative;

    margin:
        0 0 17px !important;

    padding-bottom:
        17px;

    color:
        var(--psp-dark);

    font-size:
        clamp(30px, 3.2vw, 48px) !important;

    font-weight:
        900 !important;

    line-height:
        1.45 !important;

    letter-spacing:
        -0.7px;
}


.single-product
.product_title::after {
    content: "";

    position: absolute;

    right: 0;
    bottom: 0;

    width: 58px;
    height: 4px;

    border-radius:
        20px;

    background:
        linear-gradient(
            90deg,
            var(--psp-orange),
            var(--psp-primary)
        );
}


/* ================================================================
   SALE BADGE
================================================================ */

.single-product
.onsale {
    min-width: auto !important;
    min-height: auto !important;

    top: 18px !important;
    right: auto !important;
    left: 18px !important;

    margin: 0 !important;

    padding:
        7px 12px !important;

    border-radius:
        100px !important;

    background:
        var(--psp-orange) !important;

    color:
        var(--psp-dark) !important;

    font-size:
        11px !important;

    font-weight:
        800 !important;

    line-height:
        1.5 !important;

    box-shadow:
        0 8px 20px
        rgba(255, 159, 67, 0.18);
}


/* ================================================================
   RATING
================================================================ */

.single-product
.woocommerce-product-rating {
    margin:
        0 0 16px !important;

    display: flex;
    align-items: center;

    gap: 10px;
}


.single-product
.star-rating {
    color:
        var(--psp-orange);
}


.single-product
.woocommerce-review-link {
    color:
        var(--psp-text-soft);

    font-size:
        12px;

    font-weight:
        600;
}


/* ================================================================
   PRICE
================================================================ */

.single-product
.summary
.price {
    width: fit-content;

    margin:
        0 0 18px !important;

    padding:
        9px 14px;

    border-radius:
        13px;

    color:
        var(--psp-primary) !important;

    background:
        var(--psp-primary-soft);

    font-size:
        21px !important;

    font-weight:
        850 !important;

    line-height:
        1.6;
}


.single-product
.summary
.price del {
    margin-left:
        7px;

    color:
        var(--psp-text-muted);

    font-size:
        14px;

    opacity: 0.65;
}


.single-product
.summary
.price ins {
    color:
        var(--psp-primary);

    text-decoration:
        none;
}


/* ================================================================
   SHORT DESCRIPTION
================================================================ */

.single-product
.woocommerce-product-details__short-description {
    margin:
        0 0 20px;

    padding:
        17px 18px;

    position:
        relative;

    border:
        1px solid
        var(--psp-border);

    border-right:
        4px solid
        var(--psp-primary);

    border-radius:
        16px;

    background:
        linear-gradient(
            90deg,
            #FFFFFF,
            var(--psp-primary-soft-2)
        );
}


.single-product
.woocommerce-product-details__short-description p {
    margin:
        0 !important;

    color:
        var(--psp-text-soft);

    font-size:
        14px;

    line-height:
        2;
}


/* ================================================================
   STOCK
================================================================ */

.single-product
.stock {
    width:
        fit-content;

    margin:
        10px 0 !important;

    padding:
        7px 11px;

    border-radius:
        100px;

    color:
        #257C61 !important;

    background:
        #ECF8F3;

    font-size:
        11px;

    font-weight:
        800;
}


.single-product
.stock.out-of-stock {
    color:
        #B75151 !important;

    background:
        #FFF0F0;
}


/* ================================================================
   ADD TO CART AREA
================================================================ */

.single-product
form.cart {
    margin:
        22px 0 !important;

    padding:
        15px;

    display: flex;

    align-items: stretch;

    gap: 10px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        18px;

    background:
        #FFFFFF;

    box-shadow:
        var(--psp-shadow-soft);
}


/* ================================================================
   QUANTITY
================================================================ */

.single-product
.quantity {
    margin:
        0 !important;
}


.single-product
.quantity
.qty {
    width:
        75px !important;

    min-height:
        52px;

    margin:
        0 !important;

    padding:
        0 10px !important;

    border:
        1px solid
        var(--psp-border-strong) !important;

    border-radius:
        13px !important;

    background:
        var(--psp-bg) !important;

    color:
        var(--psp-dark);

    font-size:
        14px;

    font-weight:
        750;

    text-align:
        center;

    box-shadow:
        none !important;
}


/* ================================================================
   ADD TO CART BUTTON
================================================================ */

.single-product
.single_add_to_cart_button {
    min-height:
        52px !important;

    flex: 1;

    margin:
        0 !important;

    padding:
        0 23px !important;

    display:
        inline-flex !important;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    border:
        0 !important;

    border-radius:
        13px !important;

    background:
        linear-gradient(
            135deg,
            var(--psp-orange),
            #FFB35F
        ) !important;

    color:
        var(--psp-dark) !important;

    font-size:
        14px !important;

    font-weight:
        900 !important;

    box-shadow:
        0 12px 25px
        rgba(255, 159, 67, 0.18);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease !important;
}


.single-product
.single_add_to_cart_button::after {
    content:
        "←";

    width:
        32px;
    height:
        32px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        9px;

    background:
        var(--psp-dark);

    color:
        #FFFFFF;

    font-size:
        17px;
}


.single-product
.single_add_to_cart_button:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 16px 30px
        rgba(255, 159, 67, 0.24);
}


/* ================================================================
   PRODUCT META
================================================================ */

.single-product
.product_meta {
    margin-top:
        20px;

    padding:
        14px 16px;

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        7px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        15px;

    background:
        #FAFCFC;

    color:
        var(--psp-text-muted);

    font-size:
        11px;

    line-height:
        2;
}


.single-product
.product_meta
> span {
    padding:
        5px 9px;

    border-radius:
        9px;

    background:
        #FFFFFF;

    border:
        1px solid
        var(--psp-border);
}


.single-product
.product_meta a {
    color:
        var(--psp-primary);

    font-weight:
        750;
}


/* ================================================================
   PRODUCT TABS
================================================================ */

.single-product
.woocommerce-tabs {
    clear: both;

    width: 100%;

    margin-top:
        35px;

    padding:
        0 !important;
}


/* ================================================================
   TABS NAVIGATION
================================================================ */

.single-product
.woocommerce-tabs
ul.tabs {
    margin:
        0 0 18px !important;

    padding:
        6px !important;

    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        6px;

    border:
        1px solid
        var(--psp-border) !important;

    border-radius:
        17px;

    background:
        #F4F8F8;
}


.single-product
.woocommerce-tabs
ul.tabs::before,
.single-product
.woocommerce-tabs
ul.tabs::after {
    display:
        none !important;
}


.single-product
.woocommerce-tabs
ul.tabs
li {
    margin:
        0 !important;

    padding:
        0 !important;

    border:
        0 !important;

    border-radius:
        12px !important;

    background:
        transparent !important;

    box-shadow:
        none !important;
}


.single-product
.woocommerce-tabs
ul.tabs
li::before,
.single-product
.woocommerce-tabs
ul.tabs
li::after {
    display:
        none !important;
}


.single-product
.woocommerce-tabs
ul.tabs
li a {
    min-height:
        43px;

    padding:
        0 17px !important;

    display:
        flex;

    align-items:
        center;

    color:
        var(--psp-text-soft) !important;

    font-size:
        12px;

    font-weight:
        750 !important;

    border-radius:
        11px;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}


.single-product
.woocommerce-tabs
ul.tabs
li.active a {
    color:
        #FFFFFF !important;

    background:
        var(--psp-dark);

    box-shadow:
        0 8px 20px
        rgba(19, 34, 49, 0.13);
}


/* ================================================================
   TAB PANEL
================================================================ */

.single-product
.woocommerce-tabs
.panel {
    margin:
        0 !important;

    padding:
        clamp(22px, 3.5vw, 45px) !important;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        var(--psp-radius-xl);

    background:
        #FFFFFF;

    box-shadow:
        var(--psp-shadow-soft);

    color:
        var(--psp-text);
}


/* ================================================================
   PRODUCT LONG CONTENT
================================================================ */

.single-product
#tab-description {
    position:
        relative;

    overflow:
        hidden;
}


.single-product
#tab-description::before {
    content:
        "";

    position:
        absolute;

    width:
        180px;

    height:
        180px;

    top:
        -100px;

    left:
        -100px;

    border-radius:
        50%;

    background:
        rgba(34, 166, 179, 0.055);

    pointer-events:
        none;
}


/* ================================================================
   LONG CONTENT PARAGRAPHS
================================================================ */

.single-product
#tab-description p {
    margin:
        0 0 22px;

    color:
        #50616E;

    font-size:
        15px;

    font-weight:
        400;

    line-height:
        2.15;
}


/* ================================================================
   H2
================================================================ */

.single-product
#tab-description h2 {
    position:
        relative;

    margin:
        48px 0 20px;

    padding:
        15px 21px 15px 18px;

    color:
        var(--psp-dark);

    font-size:
        clamp(22px, 2vw, 29px);

    font-weight:
        900;

    line-height:
        1.55;

    border:
        1px solid
        var(--psp-border);

    border-right:
        5px solid
        var(--psp-primary);

    border-radius:
        0 16px 16px 0;

    background:
        linear-gradient(
            90deg,
            #FFFFFF 0%,
            #F1FAFA 100%
        );
}


.single-product
#tab-description h2::after {
    content:
        "";

    position:
        absolute;

    right:
        21px;

    bottom:
        -1px;

    width:
        42px;

    height:
        3px;

    border-radius:
        20px;

    background:
        var(--psp-orange);
}


/* First heading */

.single-product
#tab-description h2:first-child {
    margin-top:
        0;
}


/* ================================================================
   H3
================================================================ */

.single-product
#tab-description h3 {
    position:
        relative;

    margin:
        36px 0 17px;

    padding-right:
        24px;

    color:
        var(--psp-dark-soft);

    font-size:
        clamp(18px, 1.6vw, 22px);

    font-weight:
        850;

    line-height:
        1.65;
}


.single-product
#tab-description h3::before {
    content:
        "";

    position:
        absolute;

    right:
        0;

    top:
        50%;

    width:
        11px;

    height:
        11px;

    transform:
        translateY(-50%)
        rotate(45deg);

    border-radius:
        3px;

    background:
        var(--psp-orange);

    box-shadow:
        0 0 0 5px
        var(--psp-orange-soft);
}


/* ================================================================
   H4
================================================================ */

.single-product
#tab-description h4 {
    margin:
        28px 0 13px;

    color:
        var(--psp-primary);

    font-size:
        17px;

    font-weight:
        800;
}


/* ================================================================
   UNORDERED LIST
================================================================ */

.single-product
#tab-description ul {
    margin:
        20px 0 28px;

    padding:
        0;

    display:
        grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        9px;

    list-style:
        none;
}


.single-product
#tab-description ul li {
    position:
        relative;

    min-height:
        48px;

    padding:
        12px 43px 12px 13px;

    display:
        flex;

    align-items:
        center;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        13px;

    background:
        #FBFDFD;

    color:
        var(--psp-text);

    font-size:
        13.5px;

    line-height:
        1.8;
}


.single-product
#tab-description ul li::before {
    content:
        "✓";

    position:
        absolute;

    right:
        12px;

    top:
        50%;

    width:
        22px;
    height:
        22px;

    transform:
        translateY(-50%);

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        7px;

    color:
        var(--psp-primary);

    background:
        var(--psp-primary-soft);

    font-size:
        12px;

    font-weight:
        900;
}


/* ================================================================
   ORDERED LIST
================================================================ */

.single-product
#tab-description ol {
    margin:
        22px 0 30px;

    padding:
        0;

    list-style:
        none;

    counter-reset:
        psychoheal-step;
}


.single-product
#tab-description ol li {
    position:
        relative;

    min-height:
        58px;

    margin-bottom:
        9px;

    padding:
        14px 59px 14px 15px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        14px;

    background:
        linear-gradient(
            90deg,
            #FFFFFF,
            #F8FBFB
        );

    color:
        var(--psp-text);

    font-size:
        13.5px;

    line-height:
        1.9;

    counter-increment:
        psychoheal-step;
}


.single-product
#tab-description ol li::before {
    content:
        counter(psychoheal-step);

    position:
        absolute;

    right:
        13px;

    top:
        50%;

    width:
        32px;
    height:
        32px;

    transform:
        translateY(-50%);

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        10px;

    color:
        #FFFFFF;

    background:
        var(--psp-primary);

    font-size:
        12px;

    font-weight:
        900;

    box-shadow:
        0 6px 15px
        rgba(34, 166, 179, 0.16);
}


/* ================================================================
   BLOCKQUOTE
================================================================ */

.single-product
#tab-description blockquote {
    position:
        relative;

    margin:
        30px 0;

    padding:
        26px 76px 26px 25px;

    overflow:
        hidden;

    border:
        1px solid
        #FFE3C4;

    border-radius:
        20px;

    background:
        linear-gradient(
            115deg,
            #FFF9F1,
            #FFFFFF
        );

    color:
        var(--psp-dark-soft);
}


.single-product
#tab-description blockquote::before {
    content:
        "“";

    position:
        absolute;

    right:
        18px;

    top:
        14px;

    color:
        var(--psp-orange);

    font-family:
        Georgia,
        serif;

    font-size:
        62px;

    font-weight:
        900;

    line-height:
        1;
}


.single-product
#tab-description blockquote::after {
    content:
        "";

    position:
        absolute;

    right:
        0;

    top:
        0;

    bottom:
        0;

    width:
        5px;

    background:
        var(--psp-orange);
}


.single-product
#tab-description blockquote p {
    margin:
        0;

    color:
        var(--psp-dark-soft);

    font-size:
        15px;

    font-weight:
        650;

    line-height:
        2;
}


/* ================================================================
   TABLE
================================================================ */

.single-product
#tab-description table {
    width:
        100%;

    margin:
        26px 0 32px;

    border-collapse:
        separate;

    border-spacing:
        0;

    overflow:
        hidden;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        18px;

    background:
        #FFFFFF;

    box-shadow:
        var(--psp-shadow-soft);
}


.single-product
#tab-description table thead {
    background:
        linear-gradient(
            90deg,
            var(--psp-primary-soft),
            #F7FBFB
        );
}


.single-product
#tab-description table th {
    padding:
        16px 17px;

    border:
        0;

    border-bottom:
        1px solid
        var(--psp-border);

    color:
        var(--psp-dark);

    font-size:
        13px;

    font-weight:
        900;

    text-align:
        right;
}


.single-product
#tab-description table td {
    padding:
        15px 17px;

    border:
        0;

    border-bottom:
        1px solid
        #EDF2F3;

    color:
        var(--psp-text-soft);

    font-size:
        13px;

    line-height:
        1.8;

    text-align:
        right;

    vertical-align:
        middle;
}


.single-product
#tab-description table tbody tr:last-child td {
    border-bottom:
        0;
}


.single-product
#tab-description table tbody tr {
    transition:
        background 0.2s ease;
}


.single-product
#tab-description table tbody tr:hover {
    background:
        #FAFDFD;
}


/* First column */

.single-product
#tab-description table td:first-child {
    color:
        var(--psp-dark);

    font-weight:
        750;
}


/* ================================================================
   LINKS INSIDE CONTENT
================================================================ */

.single-product
#tab-description a {
    color:
        var(--psp-primary);

    font-weight:
        750;

    text-decoration:
        underline;

    text-decoration-color:
        rgba(34, 166, 179, 0.25);

    text-underline-offset:
        4px;

    transition:
        color 0.2s ease;
}


.single-product
#tab-description a:hover {
    color:
        var(--psp-orange);
}


/* ================================================================
   STRONG
================================================================ */

.single-product
#tab-description strong {
    color:
        var(--psp-dark);

    font-weight:
        850;
}


/* ================================================================
   HORIZONTAL RULE
================================================================ */

.single-product
#tab-description hr {
    width:
        100%;

    height:
        1px;

    margin:
        35px 0;

    border:
        0;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--psp-border-strong),
            transparent
        );
}


/* ================================================================
   ADDITIONAL INFORMATION TABLE
================================================================ */

.single-product
.woocommerce-product-attributes {
    border:
        1px solid
        var(--psp-border) !important;

    border-radius:
        16px;

    overflow:
        hidden;
}


.single-product
.woocommerce-product-attributes th,
.single-product
.woocommerce-product-attributes td {
    padding:
        14px 16px !important;

    border:
        0 !important;

    border-bottom:
        1px solid
        var(--psp-border) !important;

    background:
        #FFFFFF !important;
}


.single-product
.woocommerce-product-attributes th {
    color:
        var(--psp-dark);

    font-weight:
        800 !important;
}


/* ================================================================
   REVIEWS
================================================================ */

.single-product
#reviews
#comments
ol.commentlist {
    padding:
        0;

    list-style:
        none;
}


.single-product
#reviews
#comments
ol.commentlist
li {
    margin-bottom:
        12px;

    padding:
        18px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        16px;

    background:
        #FBFDFD;
}


.single-product
#review_form_wrapper {
    margin-top:
        25px;

    padding:
        22px;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        18px;

    background:
        #FAFCFC;
}


/* ================================================================
   RELATED / UPSELL PRODUCTS
================================================================ */

.single-product
.related.products,
.single-product
.upsells.products {
    clear:
        both;

    width:
        100%;

    margin-top:
        55px;
}


.single-product
.related.products
> h2,
.single-product
.upsells.products
> h2 {
    position:
        relative;

    margin:
        0 0 24px;

    padding-right:
        22px;

    color:
        var(--psp-dark);

    font-size:
        clamp(22px, 2vw, 29px);

    font-weight:
        900;
}


.single-product
.related.products
> h2::before,
.single-product
.upsells.products
> h2::before {
    content:
        "";

    position:
        absolute;

    right:
        0;

    top:
        50%;

    width:
        8px;
    height:
        30px;

    transform:
        translateY(-50%);

    border-radius:
        10px;

    background:
        linear-gradient(
            var(--psp-primary),
            var(--psp-orange)
        );
}


/* ================================================================
   RELATED PRODUCT CARDS
================================================================ */

.single-product
ul.products {
    display:
        grid !important;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        16px;
}


.single-product
ul.products
li.product {
    width:
        100% !important;

    margin:
        0 !important;

    padding:
        12px 12px 16px !important;

    overflow:
        hidden;

    border:
        1px solid
        var(--psp-border);

    border-radius:
        19px;

    background:
        #FFFFFF;

    box-shadow:
        var(--psp-shadow-soft);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}


.single-product
ul.products
li.product:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(34, 166, 179, 0.28);

    box-shadow:
        0 18px 42px
        rgba(19, 34, 49, 0.09);
}


.single-product
ul.products
li.product
img {
    margin:
        0 0 14px !important;

    border-radius:
        14px;

    background:
        var(--psp-bg);
}


.single-product
ul.products
li.product
.woocommerce-loop-product__title {
    padding:
        0 3px !important;

    color:
        var(--psp-dark);

    font-size:
        14px !important;

    font-weight:
        850;

    line-height:
        1.8;
}


.single-product
ul.products
li.product
.price {
    padding:
        0 3px;

    color:
        var(--psp-primary) !important;

    font-size:
        13px !important;

    font-weight:
        800 !important;
}


.single-product
ul.products
li.product
.button {
    width:
        100%;

    min-height:
        42px;

    margin-top:
        12px !important;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        11px !important;

    background:
        var(--psp-dark) !important;

    color:
        #FFFFFF !important;

    font-size:
        11px !important;

    font-weight:
        800 !important;
}


/* ================================================================
   TABLET
================================================================ */

@media (max-width: 1024px) {

    .single-product
    .woocommerce-breadcrumb,
    .single-product
    .woocommerce
    div.product {
        width:
            calc(100% - 34px);
    }


    .single-product
    .woocommerce
    div.product
    .woocommerce-product-gallery {
        width:
            47%;
    }


    .single-product
    .woocommerce
    div.product
    .summary {
        width:
            49%;
    }


    .single-product
    .product_title {
        font-size:
            clamp(27px, 4vw, 38px) !important;
    }


    .single-product
    #tab-description ul {
        grid-template-columns:
            1fr;
    }


    .single-product
    ul.products {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ================================================================
   MOBILE
================================================================ */

@media (max-width: 767px) {

    .single-product {
        background:
            #FFFFFF;
    }


    .single-product
    .woocommerce-breadcrumb {
        width:
            calc(100% - 22px);

        margin-top:
            15px !important;

        font-size:
            10.5px;
    }


    .single-product
    .woocommerce
    div.product {
        width:
            calc(100% - 20px);

        margin-bottom:
            45px;
    }


    /* Gallery */

    .single-product
    .woocommerce
    div.product
    .woocommerce-product-gallery {
        width:
            100% !important;

        float:
            none !important;

        margin:
            0 0 22px !important;

        padding:
            12px;

        border-radius:
            20px;
    }


    .single-product
    .woocommerce-product-gallery__image,
    .single-product
    .woocommerce-product-gallery__image img {
        border-radius:
            15px;
    }


    /* Summary */

    .single-product
    .woocommerce
    div.product
    .summary {
        width:
            100% !important;

        float:
            none !important;

        margin:
            0 !important;

        padding:
            0;
    }


    .single-product
    .product_title {
        margin-bottom:
            15px !important;

        font-size:
            clamp(27px, 8vw, 36px) !important;

        line-height:
            1.5 !important;
    }


    .single-product
    .summary
    .price {
        font-size:
            17px !important;
    }


    .single-product
    .woocommerce-product-details__short-description {
        padding:
            14px;

        border-radius:
            14px;
    }


    .single-product
    .woocommerce-product-details__short-description p {
        font-size:
            12.5px;

        line-height:
            2;
    }


    /* Cart */

    .single-product
    form.cart {
        padding:
            9px;

        gap:
            7px;

        border-radius:
            15px;
    }


    .single-product
    .quantity
    .qty {
        width:
            62px !important;

        min-height:
            49px;
    }


    .single-product
    .single_add_to_cart_button {
        min-height:
            49px !important;

        padding:
            0 12px !important;

        font-size:
            12px !important;
    }


    .single-product
    .single_add_to_cart_button::after {
        width:
            29px;

        height:
            29px;
    }


    /* Tabs */

    .single-product
    .woocommerce-tabs {
        margin-top:
            27px;
    }


    .single-product
    .woocommerce-tabs
    ul.tabs {
        padding:
            5px !important;

        overflow-x:
            auto;

        flex-wrap:
            nowrap;

        border-radius:
            14px;

        scrollbar-width:
            none;
    }


    .single-product
    .woocommerce-tabs
    ul.tabs::-webkit-scrollbar {
        display:
            none;
    }


    .single-product
    .woocommerce-tabs
    ul.tabs
    li {
        flex-shrink:
            0;
    }


    .single-product
    .woocommerce-tabs
    ul.tabs
    li a {
        min-height:
            40px;

        padding:
            0 13px !important;

        font-size:
            10.5px;
    }


    .single-product
    .woocommerce-tabs
    .panel {
        padding:
            18px 14px 22px !important;

        border-radius:
            18px;
    }


    /* Content */

    .single-product
    #tab-description p {
        margin-bottom:
            18px;

        font-size:
            13px;

        line-height:
            2.05;
    }


    .single-product
    #tab-description h2 {
        margin:
            34px 0 17px;

        padding:
            12px 15px;

        border-right-width:
            4px;

        border-radius:
            0 13px 13px 0;

        font-size:
            20px;

        line-height:
            1.65;
    }


    .single-product
    #tab-description h3 {
        margin:
            28px 0 14px;

        font-size:
            17px;
    }


    /* Lists */

    .single-product
    #tab-description ul {
        grid-template-columns:
            1fr;

        gap:
            6px;

        margin:
            17px 0 23px;
    }


    .single-product
    #tab-description ul li {
        min-height:
            45px;

        padding:
            10px 40px 10px 10px;

        font-size:
            12px;
    }


    .single-product
    #tab-description ol li {
        min-height:
            54px;

        padding:
            11px 52px 11px 10px;

        font-size:
            12px;
    }


    .single-product
    #tab-description ol li::before {
        width:
            29px;

        height:
            29px;

        right:
            11px;
    }


    /* Quote */

    .single-product
    #tab-description blockquote {
        margin:
            23px 0;

        padding:
            22px 56px 22px 15px;

        border-radius:
            16px;
    }


    .single-product
    #tab-description blockquote::before {
        right:
            13px;

        top:
            13px;

        font-size:
            47px;
    }


    .single-product
    #tab-description blockquote p {
        font-size:
            12.5px;

        line-height:
            2;
    }


    /* Table */

    .single-product
    #tab-description table {
        display:
            block;

        width:
            100%;

        overflow-x:
            auto;

        white-space:
            nowrap;

        border-radius:
            14px;
    }


    .single-product
    #tab-description table th,
    .single-product
    #tab-description table td {
        min-width:
            150px;

        padding:
            12px 13px;

        font-size:
            11.5px;
    }


    /* Related */

    .single-product
    .related.products,
    .single-product
    .upsells.products {
        margin-top:
            40px;
    }


    .single-product
    .related.products
    > h2,
    .single-product
    .upsells.products
    > h2 {
        font-size:
            21px;
    }


    .single-product
    ul.products {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            9px;
    }


    .single-product
    ul.products
    li.product {
        padding:
            8px 8px 12px !important;

        border-radius:
            15px;
    }


    .single-product
    ul.products
    li.product
    .woocommerce-loop-product__title {
        font-size:
            11.5px !important;
    }


    .single-product
    ul.products
    li.product
    .price {
        font-size:
            11px !important;
    }

}


/* ================================================================
   SMALL MOBILE
================================================================ */

@media (max-width: 430px) {

    .single-product
    .woocommerce
    div.product {
        width:
            calc(100% - 16px);
    }


    .single-product
    .product_title {
        font-size:
            26px !important;
    }


    .single-product
    form.cart {
        flex-wrap:
            wrap;
    }


    .single-product
    .quantity {
        width:
            65px;
    }


    .single-product
    .single_add_to_cart_button {
        flex:
            1;
    }


    .single-product
    .product_meta {
        padding:
            10px;
    }


    .single-product
    #tab-description h2 {
        font-size:
            18px;
    }


    .single-product
    #tab-description h3 {
        font-size:
            16px;
    }


    .single-product
    ul.products {
        grid-template-columns:
            1fr 1fr;
    }

}


/* ================================================================
   VERY SMALL MOBILE
================================================================ */

@media (max-width: 350px) {

    .single-product
    ul.products {
        grid-template-columns:
            1fr;
    }


    .single-product
    .single_add_to_cart_button {
        font-size:
            11px !important;
    }

}


/* ================================================================
   ACCESSIBILITY
================================================================ */

.single-product a:focus-visible,
.single-product button:focus-visible,
.single-product input:focus-visible,
.single-product select:focus-visible,
.single-product textarea:focus-visible {
    outline:
        2px solid
        var(--psp-orange);

    outline-offset:
        3px;
}


/* ================================================================
   REDUCED MOTION
================================================================ */

@media (prefers-reduced-motion: reduce) {

    .single-product *,
    .single-product *::before,
    .single-product *::after {
        transition:
            none !important;

        animation:
            none !important;
    }

}