﻿* {
    margin: 0;
    padding: 0;
    font-family: 'DM Sans';
}

:root {
    --bgColour: #F7F7F7;
    --bgColourSecondary: #007bff;
}

body {
    font-family: 'DM Sans', sans-serif;
}

.mb10 {
    margin-bottom: 10px !important;
}

.mb20 {
    margin-bottom: 20px !important;
}

.mb30 {
    margin-bottom: 30px !important;
}

.mb40 {
    margin-bottom: 40px !important;
}

.mt10 {
    margin-top: 10px !important;
}

.mt20 {
    margin-top: 20px !important;
}

.mt30 {
    margin-top: 30px !important;
}

.mt40 {
    margin-top: 40px !important;
}

.w5 {
    min-width: calc(5% - 16px);
    max-width: calc(5% - 16px);
}

.w10 {
    min-width: calc(10% - 16px);
    max-width: calc(10% - 16px);
}

.w15 {
    min-width: calc(15% - 16px);
    max-width: calc(15% - 16px);
}

.w15s {
    min-width: calc(15.5%);
    max-width: calc(15.5%);
}

.w16 {
    min-width: calc(16%);
    max-width: calc(16%);
}

.w20 {
    min-width: calc(20% - 16px);
    max-width: calc(20% - 16px);
}

.w25 {
    min-width: calc(25% - 16px);
    max-width: calc(25% - 16px);
}

.w30 {
    min-width: calc(30% - 16px);
    max-width: calc(30% - 16px);
}

.w35 {
    min-width: calc(35% - 16px);
    max-width: calc(35% - 16px);
}

.w40 {
    min-width: calc(40% - 16px);
    max-width: calc(40% - 16px);
}

.w45 {
    min-width: calc(45% - 16px);
    max-width: calc(45% - 16px);
}

.w50 {
    min-width: calc(50% - 16px);
    max-width: calc(50% - 16px);
}

.w55 {
    min-width: calc(55% - 16px);
    max-width: calc(55% - 16px);
}

.w60 {
    min-width: calc(60% - 16px);
    max-width: calc(60% - 16px);
}

.w65 {
    min-width: calc(65% - 16px);
    max-width: calc(65% - 16px);
}

.w75 {
    min-width: calc(75% - 16px);
    max-width: calc(75% - 16px);
}

.w80 {
    min-width: calc(80% - 16px);
    max-width: calc(80% - 16px);
}

.w85 {
    min-width: calc(85% - 16px);
    max-width: calc(85% - 16px);
}

.w90 {
    min-width: calc(90% - 16px);
    max-width: calc(90% - 16px);
}

.w95 {
    min-width: calc(95% - 16px);
    max-width: calc(95% - 16px);
}

.w100 {
    min-width: calc(100% - 16px);
    max-width: calc(100% - 16px);
}

.gap10 {
    gap: 10px;
}

.fbTitle {
    font-weight: 600;
    font-size: 16px;
}

.fbRow {
    display: flex;
    flex-direction: row;
}

.fbCol {
    display: flex;
    flex-direction: column;
}

.fbJustContSb {
    justify-content: space-between;
}

.spinner {
    border: 4px solid rgba(0,0,0,0.1);
    border-top-color: #444;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    /*animation: spin 1s linear infinite;*/
    margin: 20px auto;
}

.spinnerSmallWhite {
    border: 4px solid rgba(0,0,0,0.1);
    border-top-color: #FFF;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    /*animation: spin 1s linear infinite;*/
    margin: 0 auto;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.flxCntr {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.intBtn {
    padding: 0.75rem 2rem;
    background-color: black;
    color: white;
    border: none;
    border-radius: .5rem;
    font-weight: bold;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
    text-transform: uppercase;
    display: flex;
    justify-content: center;
}

    .intBtn:hover {
        background-color: #222;
    }


.breadcrumbs {
    font-size: 14px;
    color: #555;
    margin: auto 0;
}

    .breadcrumbs a {
        color: #666;
        text-decoration: none;
    }

        .breadcrumbs a:hover {
            text-decoration: underline;
        }

        .noTd {
            text-decoration: none;
            color: #000;
        }

.addressBookText {
    overflow-wrap: anywhere;
    white-space: normal;
}

/* WISHLIST START */
/* WISHLIST START */
/* WISHLIST START */
/* WISHLIST START */
/* WISHLIST START */

.wishlistWrap .prodGridVidWrap {
    flex: 0 0 calc((100% / 4) - 20px);
    max-width: calc((100% / 4) - 20px);
}

.heart-burst {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    pointer-events: none;
    z-index: -1;
}

.heart-burst-line {
    position: absolute;
    width: 2px;
    height: 10px;
    background-color: #ED102A;
    top: -10px;
    left: 45%;
    transform-origin: center bottom;
}

.heart-icon {
    width: 25px;
    height: 25px;
    cursor: pointer;
    background: url('data:image/svg+xml;utf8,<svg fill="none" stroke="%23ED102A" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41 0.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>') center/contain no-repeat;
    transition: background 0.2s ease-in-out;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 100;
}

    .heart-icon:hover,
    .heart-icon.liked {
        background: url("data:image/svg+xml;utf8,<svg fill='%23ED102A' stroke='%23ED102A' stroke-width='2' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41 0.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/></svg>") center/contain no-repeat;
    }

/* WISHLIST END */
/* WISHLIST END */
/* WISHLIST END */
/* WISHLIST END */
/* WISHLIST END */

/*NAV START*/
/*NAV START*/
/*NAV START*/
/*NAV START*/
/*NAV START*/
/*NAV START*/

.mainNav {
    position: sticky;
    top: 0;
    left: 0;
    background-color: #FFFFFF;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 200px;
    height: 60px;
    z-index: 1001;
    border-bottom: 1px solid #ccc;
}

.navLeftSection {
    display: flex;
    /*align-items: center;*/
    gap: 30px;
    flex: 1;
}


.navLogo {
/*    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);*/
    padding: 10px;
    z-index: 1100;
    background: transparent;
}

    .navLogo img {
        display: block;
        max-height: 40px;
        width: auto;
        box-sizing: content-box;
    }

.navRightSection {
    display: flex;
    align-items: center;
    gap: 20px;
}

.navIcon {
    position: relative;
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
}

    .navIcon i {
        pointer-events: none;
        text-decoration: none;
        color: inherit;
    }

    .navIcon a {
        color: inherit;
        text-decoration: none;
    }

        .navIcon a:visited,
        .navIcon a:link,
        .navIcon a:hover,
        .navIcon a:active {
            color: inherit;
            text-decoration: none;
        }

            .navIcon a i,
            .navIcon a:visited i,
            .navIcon a:link i,
            .navIcon a:hover i,
            .navIcon a:active i {
                color: inherit;
            }

.cart-count {
    position: absolute;
    top: -6px;
    right: -12px;
    min-width: 13px;
    height: 15px;
    padding: 0 5px;
    background: #e3342f;
    color: #fff;
    font-size: 0.75rem;
    font-weight: bold;
    line-height: 15px;
    border-radius: 9px;
    text-align: center;
    z-index: 1100;
}

.secondaryNav {
    position: relative;
    display: flex;
    justify-content: center;
    border-bottom: 1px solid #ccc;
    z-index: 1000;
    padding: 0 200px;
}

.navButtons {
    display: flex;
    /*gap: 20px;*/
}

.navBtn {
    background: none;
    border: none;
    font-family: inherit;
    font-size: 16px;
    padding: 25px 25px;
    cursor: pointer;
    transition: color 0.2s;
    transition: box-shadow .2s ease;
    display: inline-block;
    box-shadow: inset 0 -2px 0 0 transparent;
}

    .navBtn:hover {
        color: var(--primaryColour, #007bff);
        box-shadow: inset 0 -2px 0 0 var(--primaryColour, #007bff);
    }

    .navBtn.is-active {
        box-shadow: inset 0 -2px 0 0 var(--primaryColour, #007bff);
    }

    .navBtn.active,
    .navBtn:hover {
        color: var(--primaryColour, #007bff);
        font-weight: bold;
        background-color: #f0f0f0;
        /*border-bottom: 3px solid;*/
    }

.navFlyoutFlexSub.navAlphaTitle {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    opacity: 0.7;
    cursor: default;
    pointer-events: none;
    background: #f0f0f0;
    display: flex;
    align-items: center;
}

    .navFlyoutFlexSub.navAlphaTitle + .navFlyoutFlexSub {
        margin-top: 4px; /* small separation from first item under the letter */
    }

#innovations {
    border-left: 1px solid #ccc;
}

.navSearchWrap {
    display: flex;
    align-items: center;
    border: 1px solid #ccc;
    border-radius: 25px;
    overflow: hidden;
    padding: 0 10px;
    height: 36px;
    flex: 1;
    max-width: 400px;
    min-width: 400px;
    background-color: #fff;
}

.navSearchInput {
    flex: 1;
    border: none;
    outline: none;
    font-size: 14px;
    padding: 5px 10px;
    background: transparent;
}

.navSearchBtn {
    background: none;
    border: none;
    font-size: 16px;
    cursor: pointer;
    color: #333;
    padding-left: 5px;
}

#navFlyoutWrap {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 80%;
    min-height: 500px;
    max-height: 500px;
    margin: auto;
    /*padding: 20px 200px;*/
    background: #FFF;
    border: 1px solid #ccc;
    /*border-top: none;*/
    z-index: 1005;
    display: none; 
}

.noHide {
    display: flex !important;
    flex-direction: row;
    gap: 20px;
    flex-wrap: wrap;
}

.navFlyoutFlexWrap {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
}


.navFlyoutFlexSubWrap {
    max-height: 100%;
    min-height: 100%;
}

#navFlyoutWrap,
.navFlyoutFlexWrap,
.navFlyoutFlexSubWrap {
    display: none;
}

    #navFlyoutWrap.active {
        display: block;
    }

    .navFlyoutFlexWrap.active {
        display: flex;
    }


    .navFlyoutFlexSubWrap.active {
        display: flex;
        flex-wrap: wrap;
        height: 100%;
        max-height: 500px;
        padding: 0 10px 0 20px;
        gap: 20px;
        align-content: flex-start;
    }


.navFlyoutFlexChild {
    max-height: 480px;
    min-height: 480px;
    margin-top: 10px;
    overflow-y: auto;
    padding: 0 8px;
    scroll-behavior: smooth;
    height: 100%;
    box-sizing: border-box;
}

.navFlyoutFlexChild:nth-child(3n+2) {
    /*border-right: 1px solid #ccc;*/
    border-left: 1px solid #ccc;
    margin-left: 8px;
}

    .navFlyoutFlexChild:nth-child(3n+3) {
        /*border-right: 1px solid #ccc;*/
        border-left: 1px solid #ccc;
        margin-left: 8px;
    }

    .navFlyoutFlexChild::-webkit-scrollbar {
        width: 6px;
    }

    .navFlyoutFlexChild::-webkit-scrollbar-thumb {
        background-color: rgba(0, 0, 0, 0.2);
        border-radius: 8px;
    }

    .navFlyoutFlexChild::-webkit-scrollbar-track {
        background: transparent;
    }

.navFlyoutFlexSubWrap::-webkit-scrollbar {
    width: 6px;
}

.navFlyoutFlexSubWrap::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 8px;
}

.navFlyoutFlexSubWrap::-webkit-scrollbar-track {
    background: transparent;
}

.navFlyoutFlexSub {
    padding: 5px 10px;
    break-inside: avoid;
    width: calc(33.33% - 20px); 
    box-sizing: border-box;
}

    .navFlyoutFlexSub a {
        display: block;
        text-decoration: none;
        color: #333;
        padding: 5px 0;
        transition: color 0.2s ease;
    }

        .navFlyoutFlexSub a:hover {
            color: var(--primaryColour, #007bff);
        }

.navFlyoutHeaderCat {
    cursor: pointer;
    padding: 10px;
    transition: background 0.2s, color 0.2s;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

    .navFlyoutHeaderCat.active, .navFlyoutHeaderCat:hover {
        background-color: #f0f0f0;
        font-weight: bold;
        color: var(--primaryColour, #007bff);
        border-left: 3px solid;
    }

    

.navFlyoutFlexSub:hover {
    color: var(--primaryColour, #007bff);
    background-color: #f0f0f0;
}


.headerCarat {
    font-size: 1.2em;
    color: #888;
}

/*asdasdasd*/
/* Portrait ad card (matches ~262×400 design) */
.adWrap {
    position: relative;
    width: 100%;
    aspect-ratio: 262 / 400; /* ≈ 0.655 (portrait). Use 2/3 if you prefer. */
    overflow: hidden;
    border-radius: 8px; /* optional, remove if not desired */
}

/* Fallback for very old browsers without aspect-ratio support */
@supports not (aspect-ratio: 1) {
    .adWrap::before {
        content: "";
        display: block;
        padding-top: 152.7%; /* 400 / 262 * 100% */
    }
}

/* Background image fills the card */
.adWrap .adBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center; /* tweak to 'top' or '60% 50%' if you need more headroom */
    z-index: 99997;
    display: block;
}

/* Pop-out PNG sits bottom-center above background */
.adWrap .adPopOut {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    z-index: 99998;
    display: block;
    max-width: 85%; /* prevent overflow */
    height: auto;
    pointer-events: none; /* never block the button */
}

/* CTA centered horizontally, 20px from bottom, top-most layer */
.adWrap .intBtn {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    z-index: 999999;
    padding: 10px 18px;
    background: #000;
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    line-height: 1;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: .02em;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.adWrap .adPopOut {
    transform: translate(-50%, 0) scale(1);
    transform-origin: 50% 100%; /* grow from bottom-center */
    transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.adWrap:hover .adPopOut {
    transform: translate(-50%, -16px) scale(1.14); /* move up 16px and enlarge */
}

@media (prefers-reduced-motion: reduce) {
    .adWrap .adPopOut {
        transition: none;
    }
}

.navFlyoutFlexWrap.active .adWrap,
.navFlyoutFlexSubWrap.active .adWrap {
    display: block !important;
    visibility: visible !important;
}
/*asdasdasd*/


.mainNavBar {
    display: flex;
    align-items: center;
    gap: 28px; 
    flex-wrap: nowrap; 
    white-space: nowrap; 
    height: 48px; 
    line-height: 48px; 
}

   
    .mainNavBar .navItem {
        flex: 0 0 auto; 
        display: flex;
        align-items: center;
        height: 48px; 
    }

        .mainNavBar .navItem > a {
            display: block;
            white-space: nowrap;
            text-decoration: none;
        }

@media (max-width: 1200px) {
    .mainNavBar {
        gap: 20px;
    }

        .mainNavBar .navItem > a {
            font-size: 0.95rem;
        }
}

@media (max-width: 1050px) {
    .mainNavBar {
        gap: 14px;
    }

        .mainNavBar .navItem > a {
            font-size: 0.9rem;
        }
}

/*NAV END*/
/*NAV END*/
/*NAV END*/
/*NAV END*/
/*NAV END*/
/*NAV END*/


/*CART START*/
/*CART START*/
/*CART START*/
/*CART START*/
/*CART START*/

.cartContentBtnWrap {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.cartContentTitle {
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.cartWrapHeight {
    max-height: calc(100% - 180px);
    min-height: calc(100% - 180px);
}

.cart-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
    z-index: 1001;
}

.cart-flyout {
    position: fixed;
    top: 0;
    right: 0;
    width: 500px;
    max-width: 100%;
    height: 100%;
    background: #fff;
    box-shadow: -4px 0 12px rgba(0,0,0,0.2);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 1002;
    display: flex;
    flex-direction: column;
}

.cart-overlay.open {
    visibility: visible;
    opacity: 1;
}

.cart-flyout.open {
    transform: translateX(0);
}

.close-cart {
    background: none;
    border: none;
    font-size: 20px;
    align-self: flex-end;
    cursor: pointer;
    margin-top: -6px;
}

.cart-content {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}

.cartFlyoutFinaliseWrap {
    position: absolute;
    bottom: 0;
    width: calc(100% - 40px);
    z-index: 10;
    padding: 20px 0;
    background: #FFFFFF;
    border-top: 1px solid #ccc;
}

.cartEmptyWrap {
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.cartFlyoutButtonsWrap {
    display: flex;
    gap: 20px;
}

    .cartFlyoutButtonsWrap button, .cartContentBtnWrap button, .cartEmptyWrap button {
        flex: 1;
        padding: 15px 0;
        font-size: 15px;
        border: none;
        cursor: pointer;
        background: #000;
        color: #fff;
        border-radius: 6px;
    }


#cartTitleWrap {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding-bottom: 10px;
    border-bottom: 1px solid #ccc;
    margin-bottom: 10px;
}

.cartItemWrap {
    width: 100%;
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.cartBreak {
    width: 100%;
    height: 1px;
    background-color: #ccc;
    margin: 20px auto;
}

.cartItemImg {
    max-width: 55px;
    min-width: 55px;
    max-height: 69px;
    min-height: 69px;
    border-radius: 6px;
}

.cartTitle {
    font-weight: 600;
    font-size: 16px;
    color: #444;
    text-transform: uppercase;
    width: 90%;
}

.cartDesc {
    text-transform: uppercase;
    font-size: 14px;
    color: #ccc;
    font-weight: 600;
}

.cartPrice {
    font-size: 14px;
    color: #444;
    margin-top: 10px;
}

.cartItemPriceTotal {
    font-size: 16px;
    font-weight: 600;
}

#cartContentWrap {
    padding: 10px 0;
    max-height: calc(100% - 180px);
    overflow-x: hidden;
    overflow-y: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.cartEditWrap {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-top: 10px;
}

.cartItemInfoWrap {
    width: calc(100% - 65px);
    position: relative;
}

.cartPriceTotal {
    align-content: center;
    font-size: 16px;
    font-weight: 600;
}

.cartTrash {
    position: absolute;
    top: 3px;
    right: 0;
    font-size: 14px;
    cursor: pointer;
}

.cartFlyoutTotalWrap {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 20px;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 600;
}

.cartImg {
    width: 55px;
    height: 59px;
    background: #FFD1DC;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    mix-blend-mode: multiply;
    display: block;
    object-fit: cover;
}

/*CART END*/
/*CART END*/
/*CART END*/
/*CART END*/
/*CART END*/

/*FOOTER START*/
/*FOOTER START*/
/*FOOTER START*/
/*FOOTER START*/

.siteFooter {
    background-color: #3f3f3f;
    color: #e9e9e9;
    padding: 40px 20px 0;
    font-family: 'DM Sans', sans-serif;
    box-shadow: 0 50vh 0 50vh #3f3f3f; 
}

.footerColumn {
    flex: 1 1 240px;
    min-width: 220px;
}

.brandName {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
}

.brandAddress,
.brandContact {
    font-style: normal;
    margin: 0 0 10px 0;
    line-height: 1.6;
    color: #dedede;
}

.footerColumn h4 {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 10px 0;
    color: #ffffff;
    opacity: 0.9;
}

.footerColumn ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .footerColumn ul li {
        margin-bottom: 6px;
    }

.footerColumn a {
    color: #cfcfcf;
    text-decoration: none;
    font-size: 14px;
}

    .footerColumn a:hover {
        text-decoration: underline;
    }

.socialLinks {
    margin-top: 12px;
}

.socialIcon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-right: 10px;
    font-size: 16px;
    color: #eaeaea;
}

    .socialIcon:hover {
        opacity: 0.8;
    }

.footerBottom {
    border-top: 1px solid rgba(255,255,255,0.15);
    margin-top: 28px;
}

.footerBottomInner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 14px 20px 18px;
    text-align: right;
}

.footerBottom .copyright {
    font-size: 12px;
    color: #c9c9c9;
}

.footerContainer {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px;
}

.footerBrand {
    flex: 0 0 auto;
}

.footerRightGroup {
    display: flex;
    gap: 60px; 
    flex: 0 0 auto;
}

/*FOOTER END*/
/*FOOTER END*/
/*FOOTER END*/
/*FOOTER END*/

/*PRODUCT GRID START*/
/*PRODUCT GRID START*/
/*PRODUCT GRID START*/
/*PRODUCT GRID START*/

.colourSwatch {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-clip: padding-box;
    border: 4px solid transparent;
    box-sizing: border-box;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

    .colourSwatch.active,
    .sampleProdImgWrap.selectedColour .colourSwatch {
        border: 4px solid #ccc; 
        outline: 4px solid white; 
        outline-offset: -5px; 
    }

#prodPlaceholderWrap {
    display: flex;
    flex-wrap: wrap;
    gap: 60px 20px;
    margin: 0 40px 10px auto;
    width: 70%;
}

.prodGridVidWrap {
    flex: 0 0 calc((100% / 4) - 15px);
    max-width: calc((100% / 4) - 15px);
    /*background-color: var(--bgColour);*/
    box-sizing: border-box;
    /*overflow: hidden;*/
    display: flex;
    flex-direction: column;
    position: relative;
}

    .prodGridVidWrap .addToCartBtn {
        margin-left: auto;
        padding: 9px 12px;
        font-size: 18px;
        background: #222;
        color: #fff;
        border: none;
        cursor: pointer;
        border-radius: 6px;
        margin-top: 1px;
        margin-bottom: 2px;
        min-width: 160px;
        overflow: hidden;
        position: relative;
    }

.prodImgWrap {
    position: relative;
    border: 1px solid #ccc;
    border-radius: 20px;
}

.prodGridImg {
    width: 100%;
    height: auto;
    display: block;
    mix-blend-mode: multiply;
}

.colourBtn {
    height: 20px;
    width: 20px;
    border-radius: 50%;
}

.prodColourSwatch {
    display: flex;
    width: calc(100% - 20px);
    flex-direction: row;
    margin: 10px 0;
    gap: 10px;
    min-height: 20px;
}

.prodPrice {
    font-size: 20px;
    font-weight: 700;
    position: relative;
    display: flex;
    flex-direction: column;
}

.prodPriceLogin {
    font-size: 16px;
    font-weight: 500;
}

.prodPriceNoDec {
    color: #000;
    text-decoration: underline;
    text-decoration-thickness: .5px;
}

.prodTags {
    color: #bbb;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    display: block;
    font-size: 12px;
    margin-top: auto;
}

.prodPriceSlash {
    font-weight: normal;
    /*text-decoration: line-through;*/
    font-size: 12px;
    color: #aaa;
}

.prodTitle {
    font-size: 18px;
    line-height: 1.2;
    min-height: 45px;
    max-height: 45px;
    overflow: hidden;
    /*font-weight: bold;*/
    margin-top: 5px;
}

.prodCatTitle {
    background: var(--bgColour);
    color: #444;
    justify-content: center;
    align-items: center;
    font-size: 42px;
    margin-bottom: 3px;
    display: flex;
    font-weight: 500;
    height: 150px;
    text-transform: uppercase;
}

.prodInfo {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex-grow: 1;
}

.prodInfoWrap {
    /*padding: 10px;*/
    margin-top: 10px;
    flex-grow: 1;
    position: relative;
}

.prodQuickAdd {
    position: absolute;
    bottom: 15px;
    right: 15px;
    height: 30px;
    width: 30px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #444;
    background: #ffffff;
    font-size: 26px;
    font-weight: 600;
    cursor: pointer;
}

    .prodQuickAdd:hover {
        color: #999;
    }

.prodAddWrap {
    display: block;
    /*position: absolute;
    bottom: 0;
    right: 0;*/
    width: 100%;
    background: #fff;
    /*padding: 16px 0 0 0;*/
    box-sizing: border-box;
    z-index: 10;
    /*border-top: 1px solid #ddd;*/
    /*box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);*/
    font-family: 'DM Sans';
    /*border-bottom-right-radius: 20px;
    border-bottom-left-radius: 20px;*/
}

.quickAddClose {
    position: absolute;
    top: 3px;
    right: 12px;
    font-weight: 600;
    cursor: pointer;
    font-size: 18px;
    color: #444;
    transition: color 0.2s ease;
}

    .quickAddClose:hover {
        color: #999;
    }


.quickAddControls {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.sampleProdImg {
    width: 55px;
    height: 59px;
    background: #FFD1DC;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    mix-blend-mode: multiply;
}

.sampleProdImgWrap {
    position: relative;
    overflow: hidden;
    border-radius: inherit;
    cursor: pointer;
    transition: filter 0.2s;
    background-color: #FFF;
    max-width: 30px;
    min-width: 30px;
    border-radius: 5px;
}

    .sampleProdImgWrap .sampleProdImg {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sampleProdImgWrap::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.2);
        opacity: 0;
        transition: opacity 0.2s;
        pointer-events: none;
    }

    .sampleProdImgWrap.active::after {
        opacity: 1;
    }


.prodGridImgWrap {
    display: flex;
    gap: 5px;
    margin: 10px 0 0 0;
    flex-wrap: wrap;
    max-height: 35px;
    min-height: 35px;
    /*overflow-y: hidden;
            overflow-x: scroll;
            -ms-overflow-style: none;
            scrollbar-width: none;*/
}

/*PRODUCT GRID END*/
/*PRODUCT GRID END*/
/*PRODUCT GRID END*/
/*PRODUCT GRID END*/

/* QTY INPUT START */
/* QTY INPUT START */
/* QTY INPUT START */
/* QTY INPUT START */
/* QTY INPUT START */

.qty-input {
    color: #000;
    background: #fff;
    display: flex;
    align-items: center;
    overflow: hidden;
    border-radius: 4px;
    border: 1px solid #444;
}

    .qty-input .product-qty,
    .qty-input .qty-count {
        background: transparent;
        color: inherit;
        font-weight: bold;
        font-size: inherit;
        border: none;
        display: inline-block;
        min-width: 0;
        height: 2.5rem;
        line-height: 1;
    }

        .qty-input .product-qty:focus,
        .qty-input .qty-count:focus {
            outline: none;
        }

    .qty-input .product-qty {
        width: 50px;
        text-align: center;
        -webkit-appearance: textfield;
        appearance: textfield;
    }

        .qty-input .product-qty::-webkit-inner-spin-button,
        .qty-input .product-qty::-webkit-outer-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

    .qty-input .qty-count {
        padding: 0;
        cursor: pointer;
        width: 2.5rem;
        font-size: 1.25em;
        text-indent: -100px;
        overflow: hidden;
        position: relative;
    }

        .qty-input .qty-count::before,
        .qty-input .qty-count::after {
            content: "";
            position: absolute;
            width: 10px;
            height: 2px;
            background: #000;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

    .qty-input .qty-count--minus {
        /*border-right: 1px solid #e2e2e2;*/
        border-right: 1px solid #444;
    }

    .qty-input .qty-count--add {
        /*border-left: 1px solid #e2e2e2;*/
        border-left: 1px solid #444;
    }

    .qty-input .qty-count--minus::after {
        display: none;
        content: none;
    }

    .qty-input .qty-count--add::after {
        transform: translate(-50%, -50%) rotate(90deg);
    }

    .qty-input .qty-count:disabled {
        color: #ccc;
        background: #f2f2f2;
        cursor: not-allowed;
        border-color: transparent;
    }

    .qty-input .qty-count--minus:disabled {
        border-right: 1px solid #444;
    }

    .qty-input .qty-count--add:disabled {
        border-left: 1px solid #444;
    }

    .qty-input .qty-count:disabled::before,
    .qty-input .qty-count:disabled::after {
        background: #ccc;
    }

#priceWrap {
    margin-bottom: 20px;
}

/* QTY INPUT END */
/* QTY INPUT END */
/* QTY INPUT END */
/* QTY INPUT END */
/* QTY INPUT END */

/* FILTER START */
/* FILTER START */
/* FILTER START */
/* FILTER START */
/* FILTER START */

#filterItemsWrap {
    /*position: sticky;*/
    top: 30px;
}

#filterWrap {
    width: calc(25% - 69px);
    border: 1px solid #ccc;
    border-top-right-radius: 20px;
    background: var(--bgColour);
    padding: 20px 40px 0 40px;
    position: relative;
}

.filterOptionWrap {
    margin-bottom: 20px;
}

.filterOptionTitleWrap {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    font-weight: 600;
    cursor: pointer;
}

.filterOptionTitle {

}

.filterOptionChev {

}

.filterCatWrap {
    display: none;
    margin: 20px 0;
/*    min-height: 100px;
    max-height: 100px;*/
}

.filterBtnWrap {
    display: flex;
    flex-direction: row;
    gap: 10px;
    width: calc(100% - 40px);
    background: #FFF;
    border-radius: 10px;
    padding: 10px 20px;
    margin-bottom: 5px;
    align-items: center;
    cursor: pointer;
}

.filSel, .filterBtnWrap:hover {
    box-shadow: inset 0 0 0 2px #007bff !important;
}

.filterOptionChev i {
    transition: transform 0.2s ease;
}

.filterOptionWrap.open .filterOptionChev i {
    transform: rotate(180deg);
}

.filterGridWrap {
    /*display: flex;*/
    /*gap: 5px;*/
    margin: 10px 0 0 0;
    /*flex-wrap: wrap;*/
    /*max-height: 35px;
    min-height: 35px;*/
}

.filterTitle {
    font-weight: 400;
}

.filterCount {
    font-weight: 600;
}

.hidden {
    display: none;
}

.showMoreIden {
    display: inline-block;
    border-bottom: 1px solid #007bff;
    text-align: center;
    font-size: 14px;
    margin-top: 10px;
    font-weight: 600;
    cursor: pointer;
}

.bordBlack {
    border: 2px solid #ccc;
}

.price-inputs {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

    .price-inputs input {
        width: 45%;
        padding: 5px;
    }

#priceSlider {
    width: 92%;
    margin: 20px auto;
}

.noUi-connect {
    background: var(--bgColourSecondary) !important;
}

span.filSelCn {
    background: blue;
    border-radius: 50%;
    height: 20px;
    width: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 12px;
    margin-left: 6px;
}

/* FILTER END */
/* FILTER END */
/* FILTER END */
/* FILTER END */
/* FILTER END */

/* PAGINATION START */
/* PAGINATION START */
/* PAGINATION START */
/* PAGINATION START */
/* PAGINATION START */

.gen-btn {
    padding: 8px 16px;
    background-color: #d9ecff;
    color: var(--bgColourSecondary) !important;
    border: 1px solid var(--bgColourSecondary);
    margin-right: 8px;
    text-decoration: none;
    border-radius: 3px;
}

.gen-btn-sel {
    background-color: var(--bgColourSecondary);
    color: #FFF !important;
}

/* PAGINATION END */
/* PAGINATION END */
/* PAGINATION END */
/* PAGINATION END */
/* PAGINATION END */

/* NEW CATEGORY CSS START */
/* NEW CATEGORY CSS START */
/* NEW CATEGORY CSS START */
/* NEW CATEGORY CSS START */
/* NEW CATEGORY CSS START */

.categoryLayout {
    --filter-open-width: 350px;
    --filter-closed-width: 35px;
}

    .categoryLayout #filterWrap,
    .categoryLayout #prodPlaceholderWrap,
    .categoryLayout #filterItemsWrap {
        transition: all 0.3s ease;
    }

    .categoryLayout #filterWrap {
        position: relative;
        overflow: hidden;
    }

    .categoryLayout #prodPlaceholderWrap {
        flex: 1 1 auto;
        width: auto;
        margin: 0 40px 10px auto;
    }

    .categoryLayout.filters-collapsed #filterWrap {
        width: var(--filter-closed-width) !important;
        min-width: var(--filter-closed-width) !important; 
        max-width: var(--filter-closed-width) !important;
        padding: 20px 8px 0 8px !important;
    }

    .categoryLayout.filters-collapsed #filterItemsWrap {
        opacity: 0;
        pointer-events: none;
    }

    .categoryLayout.filters-collapsed .prodGridVidWrap {
        flex: 0 0 calc((100% / 5) - 16px);
        min-width: calc((100% / 5) - 16px); 
        max-width: calc((100% / 5) - 16px); 
    }

    .categoryLayout.filters-open #filterWrap {
        width: var(--filter-open-width) !important;
        min-width: var(--filter-open-width) !important;
        max-width: var(--filter-open-width) !important;
        padding: 20px 40px 0 40px !important;
    }

    .categoryLayout.filters-open #filterItemsWrap {
        opacity: 1;
        pointer-events: auto;
    }

    .categoryLayout.filters-open .prodGridVidWrap {
        flex: 0 0 calc((100% / 4) - 15px);
        min-width: calc((100% / 4) - 15px); 
        max-width: calc((100% / 4) - 15px);
    }

#filterToggleBtn {
    position: absolute;
    top: 10px;
    right: 8px;
    background: #000;
    color: #fff;
    border: none;
    border-radius: .5rem;
    padding: 8px 12px;
    font-size: 13px;
    display: flex;
    align-items: center;
    cursor: pointer;
    z-index: 999;
    transition: background 0.2s ease;
}

    #filterToggleBtn:hover {
        background: #222;
    }

    #filterToggleBtn .label {
        text-transform: uppercase;
        font-weight: 700;
    }

.categoryLayout.filters-open #filterToggleBtn .label::before {
    /*content: "Hide Filters";*/
}

.categoryLayout.filters-open #filterToggleBtn {
    top: 16px;
    right: 40px;
    /*gap: 10px;*/
}
/* NEW CATEGORY CSS END */
/* NEW CATEGORY CSS END */
/* NEW CATEGORY CSS END */
/* NEW CATEGORY CSS END */
/* NEW CATEGORY CSS END */

/* RESPONSIVENESS START */
/* RESPONSIVENESS START */
/* RESPONSIVENESS START */
/* RESPONSIVENESS START */
/* RESPONSIVENESS START */

@media (max-width: 768px) {
    /* Make the container a vertical stack (not side-by-side) */
    .categoryLayout {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px;
    }

    .filterBtnWrap {
        background: #eee;
    }

    /* Ensure both children behave like full-width rows in the stack */
    .categoryLayout #prodPlaceholderWrap {
        flex: 0 0 auto !important;
        width: calc(100% - 20px) !important;
        max-width: calc(100% - 20px) !important;
        min-width: 0 !important;
        margin: 0 !important;
        border-radius: 0;
    }

        /* Neutralize desktop width rules that force 25%/70% split */
        .categoryLayout.filters-open #filterWrap,
        .categoryLayout.filters-collapsed #filterWrap,
        .categoryLayout.filters-open #prodPlaceholderWrap,
        .categoryLayout.filters-collapsed #prodPlaceholderWrap {
            width: calc(100% - 20px) !important;
            max-width: calc(100% - 20px) !important;
            min-width: 0 !important;
            margin: 0 !important;
        }

        .categoryLayout #filterWrap {
            flex: 0 0 auto !important;
            padding: 20px 10px;
            width: calc(100%) !important;
            max-width: calc(100%) !important;
            min-width: 0 !important;
            margin: 0 !important;
            border-radius: 0;
        }

        /* Two products per row on all mobile */
        .categoryLayout .prodGridVidWrap,
        .categoryLayout.filters-open .prodGridVidWrap,
        .categoryLayout.filters-collapsed .prodGridVidWrap {
            flex: 0 0 calc(50% - 10px) !important;
            max-width: calc(50% - 10px) !important;
        }


    #prodPlaceholderWrap {
        padding: 0 10px;
        width: calc(100% - 20px) !important;
        max-width: calc(100% - 20px) !important;
    }

    #filterWrap {
        border: none;
        background-color: #fff !important;
    }

    .categoryHeaderWrap {
        padding: 20px 10px 0 10px !important;
    }
}

/* Footer: stack on mobile, no overflow */
@media (max-width: 768px) {
    .footerContainer {
        display: flex;
        flex-direction: column; /* brand first, then the right group */
        align-items: stretch;
        gap: 24px;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .footerRightGroup {
        display: flex;
        flex-direction: column; /* categories, then information */
        gap: 24px;
        max-width: 100%;
        box-sizing: border-box;
    }

    .footerColumn {
        flex: 1 1 100%;
        min-width: 0; /* prevents flex children from forcing a wider page */
        max-width: 100%;
    }

        /* Tidy small-screen typography/wrapping */
        .footerColumn a {
            word-break: break-word;
        }

    .brandContact, .brandAddress {
        word-break: break-word;
    }

    /* Center the copyright row on small screens */
    .footerBottomInner {
        text-align: center;
    }
}

@media (max-width: 768px) {
    .categoryLayout #filterWrap {
        box-sizing: border-box; /* include padding/border in width */
        overflow-x: hidden; /* stop horizontal spill */
    }

    #filterItemsWrap {
        box-sizing: border-box;
        overflow-x: hidden;
        width: 100%;
        margin-top: 20px;
    }
}

@media (max-width: 768px) {
    #filterToggleBtn {
        position: static !important; /* remove absolute positioning */
        display: block;
        width: 100% !important; /* span full width of the div */
        box-sizing: border-box;
        padding: 12px 16px;
        text-align: center;
        font-size: 16px;
        font-weight: 600;
        border: 1px solid #ccc;
        border-radius: 6px;
    }
}

@media (max-width: 768px) {
    .prodGridVidWrap .quickAddControls {
        flex-direction: column !important;
        align-items: stretch !important; /* full width children */
        gap: 10px !important;
        width: 100%; /* container spans card */
    }

    /* Qty row spans full width */
    .prodGridVidWrap .qty-input {
        display: flex;
        justify-content: center; /* center the - 1 + inside */
        align-items: center;
        width: 100% !important;
        height: 48px;
        box-sizing: border-box;
    }

        .prodGridVidWrap .qty-input .qty-count,
        .prodGridVidWrap .qty-input .product-qty {
            flex: 1; /* each piece shares space */
            max-width: none;
            height: 48px !important;
            line-height: 48px !important;
            text-align: center;
            border-radius: 0;
        }

            .prodGridVidWrap .qty-input .qty-count:first-child {
                border-top-left-radius: 6px;
                border-bottom-left-radius: 6px;
            }

            .prodGridVidWrap .qty-input .qty-count:last-child {
                border-top-right-radius: 6px;
                border-bottom-right-radius: 6px;
            }

    /* ATC button full width */
    .prodGridVidWrap .addToCartBtn {
        width: 100% !important;
        min-width: 0 !important;
        height: 48px;
        justify-content: center;
        font-size: 16px;
        border-radius: 6px;
    }
}

/* RESPONSIVENESS END */
/* RESPONSIVENESS END */
/* RESPONSIVENESS END */
/* RESPONSIVENESS END */
/* RESPONSIVENESS END */

/* Show correct wrapper */
#uc_desktop_nav {
    display: block;
}

#uc_mobile_nav {
    display: none;
}

@media (max-width: 900px) {
    #uc_desktop_nav {
        display: none !important;
    }

    #uc_mobile_nav {
        display: block !important;
    }

    #navIcon {
        font-size: 20px;
    }
}

/* Mobile top bar + drawer */
#uc_mobile_nav {
    --mnav-topbar-h: 56px;
    position: relative;
}

    /* Top bar (always visible) */
    #uc_mobile_nav .mnav-topbar {
        position: fixed;
        left: 0;
        top: 0;
        right: 0;
        height: var(--mnav-topbar-h);
        background: #fff;
        border-bottom: 1px solid #eee;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 12px;
        z-index: 10005;
    }

    #uc_mobile_nav .mnav-top-logo img {
        height: 28px;
        display: block;
    }

    /* Hamburger on the bar */
    #uc_mobile_nav .mnav-open {
        width: 36px;
        height: 36px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: #fff;
        border-radius: 6px;
        cursor: pointer;
    }

        #uc_mobile_nav .mnav-open .hamb-line {
            display: block;
            width: 22px;
            height: 2px;
            background: #111;
            margin: 3px 0;
        }

    /* Overlay starts below the top bar */
    #uc_mobile_nav .mnav-overlay {
        position: fixed;
        left: 0;
        right: 0;
        top: var(--mnav-topbar-h);
        height: calc(100vh - var(--mnav-topbar-h));
        background: rgba(0,0,0,.35);
        opacity: 0;
        visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
        z-index: 10003;
    }

        #uc_mobile_nav .mnav-overlay.is-open {
            opacity: 1;
            visibility: visible;
        }

    /* Drawer panel also starts below top bar */
    #uc_mobile_nav .mnav-panel {
        position: fixed;
        left: 0;
        top: var(--mnav-topbar-h);
        width: 100vw;
        height: calc(100vh - var(--mnav-topbar-h));
        background: #fff;
        transform: translateX(-100%);
        transition: transform .28s ease;
        z-index: 10004;
        display: flex;
        flex-direction: column;
    }

        #uc_mobile_nav .mnav-panel.is-open {
            transform: translateX(0);
        }

    /* Drawer header row */
    #uc_mobile_nav .mnav-drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 16px;
        border-bottom: 1px solid #eee;
    }

    #uc_mobile_nav .mnav-drawer-title {
        font-weight: 700;
        letter-spacing: .02em;
    }

    /* Close button (X) */
    #uc_mobile_nav #mnavCloseBtn {
        position: relative;
        width: 28px;
        height: 28px;
        background: none;
        border: 0;
        cursor: pointer;
    }

        #uc_mobile_nav #mnavCloseBtn span {
            position: absolute;
            left: 4px;
            right: 4px;
            top: 13px;
            height: 2px;
            background: #111;
            transform-origin: center;
        }

            #uc_mobile_nav #mnavCloseBtn span:first-child {
                transform: rotate(45deg);
            }

            #uc_mobile_nav #mnavCloseBtn span:last-child {
                transform: rotate(-45deg);
            }

    /* Tools inside drawer */
    #uc_mobile_nav .mnav-tools {
        padding: 10px 16px;
    }

    #uc_mobile_nav .mnav-search {
        display: flex;
        gap: 8px;
        align-items: center;
    }

    #uc_mobile_nav .mnavSearchInput {
        flex: 1 1 auto;
        height: 38px;
        border: 1px solid #ddd;
        border-radius: 4px;
        padding: 0 10px;
        font-size: 14px;
    }

    #uc_mobile_nav .mnavSearchBtn {
        height: 38px;
        min-width: 44px;
        border: 1px solid #111;
        background: #111;
        color: #fff;
        border-radius: 4px;
        cursor: pointer;
    }

    #uc_mobile_nav .mnav-actions {
        display: flex;
        gap: 14px;
        align-items: center;
        margin-top: 10px;
    }

    #uc_mobile_nav .mnav-act {
        color: #111;
        text-decoration: none;
        font-size: 18px;
        position: relative;
    }

        #uc_mobile_nav .mnav-act .cart-count {
            position: absolute;
            top: -6px;
            right: -8px;
            background: #111;
            color: #fff;
            font-size: 11px;
            line-height: 1;
            padding: 2px 5px;
            border-radius: 10px;
        }

    /* Drawer body */
    #uc_mobile_nav .mnav-body {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    #uc_mobile_nav .mnav-list {
        padding: 6px 0 28px;
    }

    /* Rows + items */
    #uc_mobile_nav .mnav-row {
        border-top: 1px solid #eee;
    }

        #uc_mobile_nav .mnav-row:first-child {
            border-top: 0;
        }

    #uc_mobile_nav .mnav-item {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px;
        background: none;
        border: 0;
        text-align: left;
        cursor: pointer;
        font-weight: 700;
        letter-spacing: .02em;
        color: #111;
        text-decoration: none;
    }

        #uc_mobile_nav .mnav-item .mnav-chevron {
            font-weight: 700;
        }

    /* Accordion visibility */
    #uc_mobile_nav .mnav-headers[hidden],
    #uc_mobile_nav .mnav-sublist[hidden] {
        display: none !important;
    }

    /* Subcategories */
    #uc_mobile_nav .mnav-sublist {
        padding: 4px 0 8px;
    }

    #uc_mobile_nav .mnav-sub {
        display: block;
        padding: 10px 16px 10px 24px;
        color: #111;
        text-decoration: none;
        font-weight: 500;
        border-top: 1px solid #f4f4f4;
    }

        #uc_mobile_nav .mnav-sub:first-child {
            border-top: 0;
        }

    #uc_mobile_nav .mnav-sub-alpha {
        padding: 10px 16px;
        font-size: 12px;
        font-weight: 700;
        color: #777;
        text-transform: uppercase;
    }

    /* Touch feedback */
    #uc_mobile_nav .mnav-item:active,
    #uc_mobile_nav .mnav-sub:active {
        background: #f8f8f8;
    }

/* Body lock when open */
.body-lock {
    overflow: hidden;
    touch-action: none;
}

/* ---------------------------
   Which wrapper to show
   --------------------------- */
#uc_desktop_nav {
    display: block;
}

#uc_mobile_nav {
    display: none;
}

@media (max-width: 900px) {
    #uc_desktop_nav {
        display: none !important;
    }

    #uc_mobile_nav {
        display: block !important;
    }
}

/* ---------------------------
   Mobile top bar (NOT sticky)
   --------------------------- */
#uc_mobile_nav {
    position: relative;
}

    #uc_mobile_nav .mnav-topbar {
        position: relative; /* not fixed; sits in normal flow */
        height: 56px;
        background: #fff;
        border-bottom: 1px solid #eee;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 12px;
        z-index: 1; /* only above page content directly beneath it */
    }

    #uc_mobile_nav .mnav-top-logo img {
        height: 40px;
        display: block;
    }

    /* Hamburger inside the bar */
    #uc_mobile_nav .mnav-open {
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #fff;
        border: 1px solid #fff;
        border-radius: 6px;
        cursor: pointer;
    }

        #uc_mobile_nav .mnav-open .hamb-line {
            width: 22px;
            height: 2px;
            background: #111;
            margin: 3px 0;
            display: block;
        }

    /* ---------------------------
   Overlay + Drawer (full screen)
   --------------------------- */
    #uc_mobile_nav .mnav-overlay {
        position: fixed;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0; /* cover entire viewport */
        background: rgba(0,0,0,.35);
        opacity: 0;
        visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
        z-index: 10003;
    }

        #uc_mobile_nav .mnav-overlay.is-open {
            opacity: 1;
            visibility: visible;
        }

    #uc_mobile_nav .mnav-panel {
        position: fixed;
        left: 0;
        top: 0; /* start at viewport top */
        width: 100vw;
        height: 100vh;
        background: #fff;
        transform: translateX(-100%);
        transition: transform .28s ease;
        z-index: 10004;
        display: flex;
        flex-direction: column;
    }

        #uc_mobile_nav .mnav-panel.is-open {
            transform: translateX(0);
        }

    /* Drawer header inside the panel */
    #uc_mobile_nav .mnav-drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 16px;
        border-bottom: 1px solid #eee;
    }

    #uc_mobile_nav .mnav-drawer-title {
        font-weight: 700;
        letter-spacing: .02em;
    }

    /* Close (X) */
    #uc_mobile_nav #mnavCloseBtn {
        position: relative;
        width: 28px;
        height: 28px;
        background: none;
        border: 0;
        cursor: pointer;
    }

        #uc_mobile_nav #mnavCloseBtn span {
            position: absolute;
            left: 4px;
            right: 4px;
            top: 13px;
            height: 2px;
            background: #111;
            transform-origin: center;
        }

            #uc_mobile_nav #mnavCloseBtn span:first-child {
                transform: rotate(45deg);
            }

            #uc_mobile_nav #mnavCloseBtn span:last-child {
                transform: rotate(-45deg);
            }

    /* Tools (optional) */
    #uc_mobile_nav .mnav-tools {
        padding: 10px 16px;
    }

    #uc_mobile_nav .mnav-search {
        display: flex;
        gap: 8px;
        align-items: center;
    }

    #uc_mobile_nav .mnavSearchInput {
        flex: 1 1 auto;
        height: 38px;
        border: 1px solid #ddd;
        border-radius: 4px;
        padding: 0 10px;
        font-size: 14px;
    }

    #uc_mobile_nav .mnavSearchBtn {
        height: 38px;
        min-width: 44px;
        border: 1px solid #111;
        background: #111;
        color: #fff;
        border-radius: 4px;
        cursor: pointer;
    }

    #uc_mobile_nav .mnav-actions {
        display: flex;
        gap: 14px;
        align-items: center;
        margin-top: 10px;
    }

    #uc_mobile_nav .mnav-act {
        color: #111;
        text-decoration: none;
        font-size: 18px;
        position: relative;
    }

        #uc_mobile_nav .mnav-act .cart-count {
            position: absolute;
            top: -6px;
            right: -8px;
            background: #111;
            color: #fff;
            font-size: 11px;
            line-height: 1;
            padding: 2px 5px;
            border-radius: 10px;
        }

    /* List body */
    #uc_mobile_nav .mnav-body {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    #uc_mobile_nav .mnav-list {
        padding: 6px 0 28px;
    }

    /* Rows + items */
    #uc_mobile_nav .mnav-row {
        border-top: 1px solid #eee;
    }

        #uc_mobile_nav .mnav-row:first-child {
            border-top: 0;
        }

    #uc_mobile_nav .mnav-item {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px;
        background: none;
        border: 0;
        text-align: left;
        cursor: pointer;
        font-weight: 700;
        letter-spacing: .02em;
        color: #111;
        text-decoration: none;
    }

        #uc_mobile_nav .mnav-item .mnav-chevron {
            font-weight: 700;
            font-size: 16px;
        }


    .mnavIconWrap {
        display:flex;
        gap:20px;
    }

    /* Accordion visibility */
    #uc_mobile_nav .mnav-headers[hidden],
    #uc_mobile_nav .mnav-sublist[hidden] {
        display: none !important;
    }

    /* Subcategories */
    #uc_mobile_nav .mnav-sublist {
        padding: 4px 0 8px;
    }

    #uc_mobile_nav .mnav-sub {
        display: block;
        padding: 10px 16px 10px 24px;
        color: #111;
        text-decoration: none;
        font-weight: 500;
        border-top: 1px solid #f4f4f4;
    }

        #uc_mobile_nav .mnav-sub:first-child {
            border-top: 0;
        }

    #uc_mobile_nav .mnav-sub-alpha {
        padding: 10px 16px;
        font-size: 12px;
        font-weight: 700;
        color: #777;
        text-transform: uppercase;
    }

    /* Touch feedback */
    #uc_mobile_nav .mnav-item:active,
    #uc_mobile_nav .mnav-sub:active {
        background: #f8f8f8;
    }

/* Optional: prevent page scroll when drawer is open */
.body-lock {
    overflow: hidden;
    touch-action: none;
}

.mnavIconWrap {
    display: flex;
    align-items: center; /* centers vertically */
    gap: 15px; /* spacing between icons */
    line-height: 1; /* reset line-height */
}

.mnavIcon,
#mnavOpenBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px; /* set a consistent height */
    width: 40px; /* optional: makes them square */
    line-height: 40px; /* ensures icon is centered */
    cursor: pointer;
}

    .mnavIcon i,
    #mnavOpenBtn .hamb-line {
        font-size: 18px; /* control icon size */
    }

/* Mobile full-screen flyout for NAV (triggered by mobile cart) */
@media (max-width: 900px) {
    #navFlyoutWrap {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        width: 100vw !important;
        height: 100vh !important;
        max-height: 100vh !important;
        margin: 0 !important;
        border: 0 !important;
        background: #fff;
        z-index: 10050; /* above mobile topbar and drawer */
        display: block; /* allow transform-driven visibility */
        transform: translateX(100vw);
        transition: transform .28s ease;
        overflow: hidden;
    }

        #navFlyoutWrap.active {
            transform: translateX(0);
        }

    #cartCount {
        top: 10px !important;
        right: 90px !important;
    }

    /* Ensure inner columns scroll inside the full-height panel */
    .navFlyoutFlexWrap,
    .navFlyoutFlexSubWrap,
    .navFlyoutFlexChild {
        height: 100%;
        max-height: 100%;
    }
}