/* =========================================================
   Healius Peptides style clone — All Peptides page
   Primary: #705BDA | Text: #1e1e1f | Font: Inter
   ========================================================= */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1e1e1f;
    background-color: #fff;
    overflow-x: hidden;
}

img { max-width: 100%; }

a { text-decoration: none; color: inherit; transition: .3s; }

ul { margin: 0; padding: 0; list-style: none; }

p { margin: 0 0 1rem; }

h1, h2, h3 { margin: 0 0 15px; font-weight: 700; }

button { font-family: inherit; }

/* ---------- container (matches theme: 95% / max 1440) ---------- */
.container {
    width: 95%;
    padding-left: 12px;
    padding-right: 12px;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 601px)  { .container { width: 100%; max-width: 100%; } }
@media (min-width: 1201px) { .container { width: 95%; max-width: 1440px; } }
@media (min-width: 1699px) { .container { max-width: 1600px; } }

/* ---------- buttons ---------- */
.btn-ctn {
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 30px;
    background-color: #705BDA;
    color: #fff;
    border: 1px solid #705BDA;
    border-radius: 5px;
    cursor: pointer;
    transition: .3s;
}
.btn-ctn:hover { background-color: transparent; color: #705BDA; }
.btn-ctn.outline { background-color: transparent; color: #705BDA; }
.btn-ctn.outline:hover { background-color: #705BDA; color: #fff; }

/* ---------- icons ---------- */
.ic {
    width: 22px;
    height: 22px;
    stroke: currentColor;
    stroke-width: 1.7;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: inline-block;
    vertical-align: middle;
}

/* ---------- main titles (centered on mobile, left on desktop) ---------- */
.main-title { text-align: center; padding: 0 12px; }
.main-title h1,
.main-title h2,
.shop-all-head .main-title p {
    color: #000;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 15px;
    font-weight: 700;
}
.main-title h1 span, .main-title h2 span,
.shop-all-head .main-title p span { color: #705BDA; }
@media (min-width: 992px) {
    .main-title { text-align: left; padding: 0; }
}
@media (min-width: 1201px) {
    .main-title h1, .main-title h2,
    .shop-all-head .main-title p { font-size: 28px; line-height: 40px; }
}
@media (min-width: 1401px) {
    body { font-size: 18px; }
    .main-title h1, .main-title h2,
    .shop-all-head .main-title p { font-size: 32px; line-height: 46px; }
}
@media (min-width: 1699px) {
    .main-title h1, .main-title h2,
    .shop-all-head .main-title p { font-size: 36px; line-height: 50px; }
}

/* =========================================================
   LOGO (text + molecule mark)
   ========================================================= */
.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    line-height: 1;
}
.site-logo .logo-text {
    font-weight: 800;
    font-size: 27px;
    line-height: .98;
    letter-spacing: -.5px;
    color: #151515;
}
.site-logo .logo-mark { width: 62px; height: 42px; flex-shrink: 0; }

/* =========================================================
   TOP NOTICE BAR
   ========================================================= */
.notice-div { font-size: 16px; }
.notice-div .notice-inner {
    background-color: #705BDA;
    color: #fff;
    padding: 5px 0;
}
.notice-div .notice-inner .wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
@media (max-width: 991px) {
    .notice-div { font-size: 13px; }
    .notice-div .notice-inner { padding: 6px 10px; }
}
.notice-div .notice-inner .wrap.desktop-wrap { display: none; }
.notice-div .notice-inner p { margin: 0; }
.notice-div .notice-inner a { font-weight: 700; text-decoration: underline; color: inherit; }

@media (min-width: 992px) {
    .notice-div { background-color: #fff; padding: 4px 4px 0; }
    .notice-div .notice-inner {
        border-radius: 10px;
        background-color: #f3f3f8;
        color: #000;
    }
    .notice-div .notice-inner .wrap.desktop-wrap { display: flex; }
    .notice-div .notice-inner .wrap.mobile-wrap { display: none; }
    .notice-div .notice-inner a { color: #705BDA; text-decoration: none; font-weight: 500; }
    .notice-div .notice-inner a:hover { text-decoration: underline; }
}

/* =========================================================
   MOBILE HEADER
   ========================================================= */
.mobile-header {
    border-bottom: 1px solid #eee;
    padding: 10px 0 0;
}
.mobile-header .wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding-bottom: 10px;
}
.mobile-header .left-col,
.mobile-header .right-col { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.mobile-header .center-col { min-width: 0; }
.mobile-header .center-col .site-logo { gap: 5px; }
.mobile-header .center-col .site-logo .logo-text { font-size: 17px; }
.mobile-header .center-col .site-logo .logo-mark { width: 38px; height: 26px; }
.mobile-header .ic { width: 20px; height: 20px; }
.mobile-header .currency-current { font-size: 12px; padding: 2px 0; gap: 4px; }
.mobile-header .currency-current .flag { width: 17px; height: 12px; }

.menu-icon {
    width: 26px;
    height: 20px;
    position: relative;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}
.menu-icon span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2.5px;
    border-radius: 2px;
    background-color: #1e1e1f;
    transition: .3s;
}
.menu-icon span:nth-child(1) { top: 0; }
.menu-icon span:nth-child(2), .menu-icon span:nth-child(3) { top: 8.5px; }
.menu-icon span:nth-child(4) { top: 17px; }

.mobile-header .user-div a, .mobile-header .wishlist-div > a,
.mobile-header .search-toggle a { color: #1e1e1f; display: inline-flex; }
.mobile-header .cart-div { display: flex; align-items: center; gap: 5px; }
.mobile-header .cart-subtotal { font-size: 12px; font-weight: 600; }
@media (max-width: 419px) {
    .mobile-header .cart-subtotal { display: none; }
}
.cart-bag { position: relative; display: inline-flex; color: #1e1e1f; }
.cart-bag .cart-count {
    position: absolute;
    top: -7px;
    right: -9px;
    min-width: 17px;
    height: 17px;
    border-radius: 50%;
    background-color: #705BDA;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
}

.top-area-contact { display: none; transition: .4s; }
.top-area-contact p { margin: 0; }
.top-area-contact a { color: #705BDA; }
.top-area-contact a:hover { color: #000; }
@media (max-width: 600px) {
    .top-area-contact {
        display: block;
        padding: 8px;
        background-color: #f3f3f8;
        margin: 6px 0 0;
        border-radius: 8px;
        font-size: 12px;
        text-align: center;
    }
    .top-area-contact p a { display: block; width: 100%; }
}

.mobile-search {
    display: none;
    padding: 10px 12px;
    border-top: 1px solid #eee;
}
.mobile-search.open { display: block; }
.mobile-search form { position: relative; }
.mobile-search input {
    width: 100%;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 8px 50px 8px 14px;
    font-size: 15px;
    outline: none;
    background-color: #fff;
}
.mobile-search button {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 32px;
    background-color: #705BDA;
    border: none;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.mobile-search button .ic { width: 17px; height: 17px; }

@media (min-width: 992px) {
    .mobile-header { display: none; }
}

/* =========================================================
   CURRENCY DROPDOWN
   ========================================================= */
.currency-select { position: relative; }
.currency-current {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #1e1e1f;
    padding: 4px 2px;
}
.caret {
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    display: inline-block;
    flex-shrink: 0;
}
.currency-list {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #fff;
    min-width: 96px;
    border: 1px solid #e2e2ea;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
    z-index: 999;
    padding: 2px 0;
}
.currency-list a.cur-hidden { display: none; }
.currency-select.open .currency-list { display: block; }
@media (min-width: 992px) {
    .currency-select:hover .currency-list { display: block; }
}
.currency-list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 500;
    color: #1e1e1f;
}
.currency-list a:hover { background-color: #f3f0fd; color: #705BDA; }

/* ---------- mini flags ---------- */
.flag {
    display: inline-block;
    width: 20px;
    height: 14px;
    border-radius: 2px;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}
.flag-us { background: repeating-linear-gradient(180deg, #b22234 0 2px, #fff 2px 4px); }
.flag-us::after {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 9px; height: 7px;
    background-color: #3c3b6e;
}
.flag-ca { background: linear-gradient(90deg, #d52b1e 0 27%, #fff 27% 73%, #d52b1e 73%); }
.flag-ca::after {
    content: '';
    position: absolute;
    top: 4px; left: 8px;
    width: 4px; height: 6px;
    background-color: #d52b1e;
    clip-path: polygon(50% 0, 100% 60%, 78% 60%, 78% 100%, 22% 100%, 22% 60%, 0 60%);
}
.flag-au, .flag-nz { background-color: #00247d; }
.flag-au::before, .flag-nz::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 10px; height: 7px;
    background:
        linear-gradient(45deg, transparent 44%, #fff 44% 56%, transparent 56%),
        linear-gradient(-45deg, transparent 44%, #fff 44% 56%, transparent 56%),
        #00247d;
}
.flag-au::after {
    content: '';
    position: absolute;
    right: 3px; top: 3px;
    width: 3px; height: 3px;
    border-radius: 50%;
    background-color: #fff;
    box-shadow: -3px 6px 0 -1px #fff, 4px 5px 0 -1.4px #fff, -9px 8px 0 -1.4px #fff;
}
.flag-nz::after {
    content: '';
    position: absolute;
    right: 4px; top: 3px;
    width: 3px; height: 3px;
    border-radius: 50%;
    background-color: #cc142b;
    box-shadow: -3px 6px 0 -1px #cc142b, 3px 5px 0 -1.2px #cc142b;
}
.flag-eu { background-color: #003399; }
.flag-eu::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 7px; height: 7px;
    margin: -3.5px 0 0 -3.5px;
    border-radius: 50%;
    border: 1.4px dotted #ffcc00;
}
.flag-gb { background-color: #00247d; }
.flag-gb::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(45deg, transparent 45%, #fff 45% 55%, transparent 55%),
        linear-gradient(-45deg, transparent 45%, #fff 45% 55%, transparent 55%);
}
.flag-gb::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(0deg, transparent 38%, #fff 38% 62%, transparent 62%),
        linear-gradient(90deg, transparent 40%, #fff 40% 60%, transparent 60%),
        linear-gradient(0deg, transparent 43%, #cf142b 43% 57%, transparent 57%),
        linear-gradient(90deg, transparent 44%, #cf142b 44% 56%, transparent 56%);
    background-blend-mode: normal;
}

/* =========================================================
   DESKTOP HEADER
   ========================================================= */
.desktop-header { display: none; }

@media (min-width: 992px) {
    .desktop-header { display: block; padding: 0; }

    .mid-desk-wrap {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 0;
    }
    .mid-desk-wrap .logo { width: 210px; flex-shrink: 0; }
    .mid-desk-wrap .logo .logo-text { font-size: 32px; letter-spacing: -.8px; }
    .mid-desk-wrap .logo .logo-mark { width: 76px; height: 52px; }
    .mid-desk-wrap .right-div {
        display: flex;
        align-items: center;
        width: calc(100% - 210px);
        padding-left: 30px;
        justify-content: flex-end;
    }

    .desktop-search { width: 50%; max-width: 500px; }
    .desktop-search .top-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        margin-bottom: 10px;
    }
    .desktop-search .top-row .btn-ctn { font-size: 14px; padding: 6px 16px; white-space: nowrap; }
    .desktop-search .top-row .os-ic { width: 14px; height: 14px; margin-right: 6px; }
    .desktop-search form { position: relative; }
    .desktop-search input {
        width: 100%;
        height: 42px;
        border: 1px solid #ccc;
        border-radius: 5px;
        padding: 8px 52px 8px 16px;
        font-size: 15px;
        color: #000;
        outline: none;
        background-color: #fff;
    }
    .desktop-search input::placeholder { color: #000; opacity: .85; }
    .desktop-search form button {
        position: absolute;
        right: 4px;
        top: 50%;
        transform: translateY(-50%);
        width: 36px;
        height: 34px;
        background-color: #705BDA;
        border: none;
        border-radius: 4px;
        color: #fff;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: .3s;
    }
    .desktop-search form button:hover { background-color: #5a46c0; }
    .desktop-search form button .ic { width: 18px; height: 18px; }

    .icons-wrap {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        margin-left: 20px;
        width: 44%;
        min-height: 62px;
    }
    .icon-div { text-align: center; }
    .icon-div a {
        margin: 0;
        font-size: 11px;
        line-height: normal;
        color: #705BDA;
        text-transform: capitalize;
        display: block;
    }
    .icon-div a span { display: block; font-size: 9px; }
    .icon-div .ic { display: block; margin: 0 auto 2px; transition: .3s; }
    .icon-div a:hover { color: #000; }
    .icon-div a:hover .ic { transform: rotate(10deg); }

    .cart-toggle-btn { font-size: 13px; padding: 6px 15px; gap: 6px; white-space: nowrap; }
    .cart-toggle-btn .ic { width: 18px; height: 18px; }
}

@media (min-width: 1401px) {
    .mid-desk-wrap .right-div { width: 71%; padding-left: 0; }
    .desktop-search { width: 56%; max-width: none; }
    .icons-wrap { width: 44%; }
}

/* =========================================================
   MAIN NAV
   ========================================================= */
.menuLink { display: none; }

@media (min-width: 992px) {
    .menuLink {
        background-color: #705BDA;
        height: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .menuLink .menu {
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .menuLink .menu > li { margin: 0 10px; }
    .menuLink .menu a {
        font-size: 14px;
        text-transform: uppercase;
        color: #fff;
        font-weight: 500;
        position: relative;
        padding: 4px 0;
    }
    .menuLink .menu a::before {
        content: '';
        position: absolute;
        left: 0;
        bottom: -1px;
        width: 0;
        height: 1px;
        background-color: #fff;
        transition: .4s;
    }
    .menuLink .menu a:hover::before { width: 100%; }

    .menuLink li.menu-item-has-children { position: relative; padding: 13px 0; }
    .menuLink li.menu-item-has-children > a::after {
        content: '';
        display: inline-block;
        width: 10px;
        height: 10px;
        border-right: 1px solid #fff;
        border-bottom: 1px solid #fff;
        transform: rotate(45deg);
        margin-left: 6px;
        vertical-align: middle;
        position: relative;
        top: -4px;
    }
    .menuLink ul.sub-menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        background-color: #fff;
        min-width: 230px;
        border-radius: 0 0 8px 8px;
        box-shadow: 0 10px 30px rgba(112,91,218,.18), 0 2px 8px rgba(0,0,0,.08);
        z-index: 99999;
        border-top: 3px solid #705BDA;
        border-bottom: 3px solid #705BDA;
        overflow: hidden;
    }
    .menuLink li.menu-item-has-children:hover > ul.sub-menu { display: block; }
    .menuLink ul.sub-menu > li { border-bottom: 1px solid #f0edfb; margin: 0; }
    .menuLink ul.sub-menu > li:last-child { border-bottom: none; }
    .menuLink ul.sub-menu > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 12px 18px;
        font-size: 14px;
        color: #1e1e1f;
        text-transform: capitalize;
        font-weight: 500;
        white-space: nowrap;
        background-color: #fff;
        transition: background-color .2s, color .2s, padding-left .2s;
        position: relative;
    }
    .menuLink ul.sub-menu > li > a::before {
        content: '';
        position: absolute;
        left: 0; top: 0; bottom: 0;
        width: 0;
        height: auto;
        background-color: #705BDA;
        transition: width .2s;
    }
    .menuLink ul.sub-menu > li:hover > a {
        background-color: #f3f0fd;
        color: #705BDA;
        padding-left: 22px;
    }
    .menuLink ul.sub-menu > li:hover > a::before { width: 3px; }
}

/* =========================================================
   OFFCANVAS MOBILE MENU
   ========================================================= */
.offcanvas-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    z-index: 1040;
}
.offcanvas-overlay.show { opacity: 1; visibility: visible; }
.offcanvas-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 300px;
    max-width: 85vw;
    height: 100vh;
    background-color: #fff;
    z-index: 1050;
    transform: translateX(-100%);
    transition: .3s;
    overflow-y: auto;
    padding: 18px;
}
.offcanvas-menu.open { transform: translateX(0); }
.offcanvas-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.offcanvas-head .logo-text { font-size: 20px; }
.offcanvas-close {
    width: 30px;
    height: 30px;
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
}
.offcanvas-close span {
    position: absolute;
    left: 4px;
    top: 14px;
    width: 22px;
    height: 2.5px;
    border-radius: 2px;
    background-color: #1e1e1f;
}
.offcanvas-close span:nth-child(1) { transform: rotate(45deg); }
.offcanvas-close span:nth-child(2) { transform: rotate(-45deg); }
.offcanvas-nav > li { border-bottom: 1px solid #f0edfb; }
.offcanvas-nav > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 4px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    color: #1e1e1f;
}
.offcanvas-nav > li > a:hover { color: #705BDA; }
.offcanvas-nav .caret { transition: .3s; }
.offcanvas-nav .has-sub.open .caret { transform: rotate(225deg); }
.offcanvas-sub { display: none; padding: 0 0 10px 14px; }
.offcanvas-nav .has-sub.open .offcanvas-sub { display: block; }
.offcanvas-sub a {
    display: block;
    padding: 8px 0;
    font-size: 14px;
    color: #1e1e1f;
    text-transform: capitalize;
}
.offcanvas-sub a:hover { color: #705BDA; }
.offcanvas-account {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}
.offcanvas-account a {
    flex: 1;
    text-align: center;
    padding: 9px 0;
    border: 1px solid #705BDA;
    border-radius: 5px;
    color: #705BDA;
    font-weight: 600;
    font-size: 14px;
}
.offcanvas-account a:first-child { background-color: #705BDA; color: #fff; }

/* =========================================================
   SHOP HEADER / CATEGORY FILTER
   ========================================================= */
.shop-all-head { padding: 30px 0; }
.shop-all-head .main-title p { margin-bottom: 15px; }
.cus-scroll { position: relative; }
.filters {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 12px;
    margin: 0;
    scrollbar-width: none;
}
.filters::-webkit-scrollbar { display: none; }
.filter-btn {
    white-space: nowrap;
    margin-right: 10px;
    padding: 5px 15px;
    border-radius: 5px;
    font-size: 17px;
}
.filter-btn.active { background-color: #705BDA; color: #fff; }
.scrollbar-track {
    height: 6px;
    background-color: #e0e0e0;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
}
.scrollbar-track.hidden { display: none; }
.scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 11.5%;
    min-width: 60px;
    background-color: #705BDA;
    border-radius: 4px;
}

/* =========================================================
   PRODUCTS SECTION
   ========================================================= */
.all-peptide { padding: 20px 0 10px; }
.all-peptide .top-head { margin-bottom: 10px; }
.shop-meta {
    display: flex;
    align-items: center;
    margin-bottom: 25px;
}
.item-count { width: 35%; }
.sorting {
    display: flex;
    align-items: center;
    width: 65%;
    justify-content: flex-end;
}
.sorting p { margin: 0 15px 0 0; text-transform: capitalize; }
.sorting select {
    width: 160px;
    height: 45px;
    border: 1px solid #ccc;
    border-radius: 6px;
    color: #1e1e1f;
    padding: 0 30px 0 15px;
    font-size: 16px;
    outline: none;
    box-shadow: 1px 1px 1px #ccc;
    background-color: #fff;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231e1e1f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 14px;
    background-position: right 8px center;
}

.pp-row {
    display: flex;
    flex-wrap: wrap;
    row-gap: 15px;
    justify-content: flex-start;
}
.pp-row .pro-box { width: calc(50% - 12px); margin: 0 6px; }
@media (min-width: 768px)  { .pp-row .pro-box { width: calc(33.33% - 12px); } }
@media (min-width: 1201px) { .pp-row .pro-box { width: calc(25% - 12px); } }

.pro-box {
    text-align: center;
    border: 1px solid #d5d5d5;
    padding: 15px;
    border-radius: 5px;
    position: relative;
    display: flex;
    flex-direction: column;
}
.sale-badge {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 50px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #705BDA;
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    border-radius: 5px;
    line-height: normal;
    z-index: 2;
}
.pro-box .image { height: 180px; margin-bottom: 15px; }
.pro-box .image a { display: block; height: 100%; }
.pro-box .image img { height: 100%; width: 100%; object-fit: contain; }
.pro-box .title { margin-bottom: 15px; min-height: 60px; }
.pro-box .title a {
    color: #705BDA;
    font-weight: 700;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    line-clamp: 2;
    -webkit-line-clamp: 2;
}
.pro-box .title a:hover { color: #1e1e1f; }
.pro-box .btns { margin-top: auto; display: flex; flex-direction: column; }

.variation-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: center;
    margin-bottom: 10px;
    min-height: 34px;
    align-items: center;
}
.variation-buttons button {
    border: 1px solid #c9c9ce;
    font-size: 15px;
    font-weight: 400;
    padding: 7px 13px;
    cursor: pointer;
    transition: .4s;
    border-radius: 4px;
    color: #1e1e1f;
    background-color: #f4f4f5;
    line-height: 1;
}
.variation-buttons button.active,
.variation-buttons button:hover {
    background-color: #705BDA;
    border-color: #705BDA;
    color: #fff;
}

.pro-box .btn-ctn {
    width: 100%;
    margin-bottom: 10px;
    font-size: 14px;
    padding: 6px 5px;
    border-radius: 5px;
    column-gap: 4px;
    font-weight: 400;
    line-height: normal;
    min-height: 32px;
}
.pro-box .btn-ctn:last-child { margin-bottom: 0; }

.blog-pagination {
    padding-top: 30px;
    padding-bottom: 30px;
    border-top: 1px solid #ddd;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
    padding-bottom: 0;
}

/* =========================================================
   CONTENT
   ========================================================= */
.rel-cont { padding: 10px 0 20px; }
.rel-cont h2 {
    font-size: 22px;
    color: #000;
    line-height: 1.4;
    margin: 28px 0 15px;
}
.rel-cont h2:first-child { margin-top: 0; }
.rel-cont p { margin-bottom: 16px; }
.browse-link { margin: 0 0 20px; }
.browse-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 400;
    padding: 6px 30px;
    background-color: #705BDA;
    color: #fff;
    border: 1px solid #705BDA;
    border-radius: 5px;
    transition: .3s;
}
.browse-link a:hover { background-color: transparent; color: #705BDA; }
.inline-link { color: #705BDA; text-decoration: underline; }
.inline-link:hover { color: #1e1e1f; }

/* =========================================================
   FAQ
   ========================================================= */
.faq-sec { padding: 30px 0; }
.faq-sec h2 {
    font-size: 22px;
    color: #000;
    line-height: 1.4;
    margin-bottom: 20px;
}
.accordion .accordion-item {
    border-radius: 10px;
    margin-bottom: 14px;
    border: 1px solid #ccc;
    background-color: #f7f7f8;
    overflow: hidden;
}
.accordion .accordion-button {
    width: 100%;
    text-align: left;
    background-color: transparent;
    border: none;
    display: flex;
    align-items: flex-start;
    font-size: 16px;
    font-weight: 500;
    line-height: 20px;
    padding: 16px 40px 16px 16px;
    position: relative;
    cursor: pointer;
    color: #1e1e1f;
    transition: color .3s;
}
.accordion .accordion-button:not(.collapsed) { color: #705bda; }
.accordion .accordion-button::after {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231e1e1f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 13px;
    height: 13px;
    position: absolute;
    right: 14px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    transition: transform .3s;
}
.accordion .accordion-button:not(.collapsed)::after { transform: rotate(180deg); }
.accordion-collapse {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}
.accordion-body { padding: 4px 16px 16px; font-size: 16px; }
.accordion-body p:last-child { margin-bottom: 0; }

/* =========================================================
   RECENTLY / MOST VIEWED
   ========================================================= */
.recent { padding: 50px 0; }
.recent .nav {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
    gap: 20px;
}
@media (min-width: 601px) {
    .recent .nav { margin-bottom: 20px; }
}
@media (min-width: 992px) {
    .recent .nav { justify-content: flex-start; }
}
@media (min-width: 1024px) {
    .recent .tab-content { width: 95%; margin: 0 auto; }
}
.recent .nav button {
    padding: 0 0 3px;
    border: none;
    background: none;
    font-size: 16px;
    color: #000;
    opacity: .7;
    cursor: pointer;
    border-bottom: 1px solid transparent;
}
.recent .nav button.active { border-bottom: 1px solid #000; opacity: 1; }
.recent .tab-content { position: relative; }
.recent .tab-pane { display: none; }
.recent .tab-pane.active { display: block; }

.rec-track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 15px 2px;
    scrollbar-width: none;
}
.rec-track::-webkit-scrollbar { display: none; }
.rec-slider .box {
    display: flex;
    align-items: center;
    background: linear-gradient(to left, rgba(128,128,128,.17), rgba(128,128,128,.02));
    padding: 15px;
    border-radius: 5px;
    flex: 0 0 85%;
    min-height: 120px;
}
@media (min-width: 600px)  { .rec-slider .box { flex-basis: calc(50% - 5px); } }
@media (min-width: 992px)  { .rec-slider .box { flex-basis: calc(33.33% - 7px); } }
@media (min-width: 1200px) { .rec-slider .box { flex-basis: calc(25% - 8px); } }

.rec-slider .image { flex-shrink: 0; width: 104px; }
.rec-slider .image a { display: block; }
.rec-slider .image img {
    width: 100%;
    height: 92px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
.rec-slider .content { font-size: 15px; padding-left: 14px; min-width: 0; }
.rec-slider .title a {
    color: #705BDA;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
    line-clamp: 1;
    -webkit-line-clamp: 1;
    word-break: break-all;
}
.rec-slider .title a:hover { color: #000; }
.act-btns {
    font-size: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 5px;
}
.act-btns a { color: #000; display: inline-flex; cursor: pointer; }
.act-btns .ic { width: 17px; height: 17px; }
.act-btns a:hover { color: #705BDA; }

.rec-pagi {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    background-color: #705BDA;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: .3s;
    z-index: 3;
}
.rec-pagi:hover { background-color: #5a46c0; }
.rec-pagi svg {
    width: 14px;
    height: 14px;
    stroke: #fff;
    stroke-width: 2.4;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.rec-prev { left: -13px; }
.rec-next { right: -13px; }

/* =========================================================
   SUBSCRIBE
   ========================================================= */
.subscribe__wrap { padding: 40px 0 50px; }
.subscribe_box {
    padding: 30px 20px;
    background: linear-gradient(to left, #fff, #8080803d);
}
.subscribe_box .row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 20px;
}
.subscribe_box .col-md-6 { width: 100%; }
.subscribe__content { text-align: center; }
.subscribe__content .main-title { padding: 0; }
.subscribe__content .main-title h2 {
    font-size: 20px;
    line-height: 32px;
    margin-bottom: 10px;
    text-align: inherit;
}
@media (min-width: 1201px) {
    .subscribe__content .main-title h2 { font-size: 26px; line-height: 42px; }
}
@media (min-width: 1401px) {
    .subscribe__content .main-title h2 { font-size: 32px; line-height: 46px; }
}
.subscribe__content p { margin-bottom: 0; }
.subscribe_form form { display: flex; }
.subscribe_form input[type="email"] {
    flex: 1;
    min-width: 0;
    border: 1px solid #705BDA;
    height: 45px;
    color: #705BDA;
    padding: 5px 20px;
    font-size: 16px;
    font-weight: 400;
    outline: none;
    background-color: #fff;
    border-radius: 0;
}
.subscribe_form input[type="email"]::placeholder { color: #705BDA; opacity: 1; }
.subscribe_form input[type="submit"] {
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 45px;
    padding: 6px 26px;
    background-color: #705BDA;
    color: #fff;
    border: 1px solid #705BDA;
    border-radius: 0;
    font-weight: 400;
    cursor: pointer;
    transition: .3s;
}
.subscribe_form input[type="submit"]:hover { background-color: transparent; color: #705BDA; }

@media (min-width: 768px) {
    .subscribe_box { padding: 50px; }
    .subscribe_box .col-md-6:first-child { width: 55%; }
    .subscribe_box .col-md-6:last-child { width: 45%; }
    .subscribe__content { text-align: left; padding-right: 30px; }
    .subscribe_form form { max-width: 500px; margin-left: auto; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.main-footer {
    background-color: #705BDA;
    padding: 50px 0 30px;
    color: #fff;
}
footer .top { text-align: center; }
footer .logo { width: 250px; margin: 0 auto 40px; flex-shrink: 0; }
.footer-logo .logo-text { color: #fff; }
.footer-logo .logo-mark { width: 74px; height: 50px; }
.disclaimer {
    background-color: #5e4db5;
    padding: 20px;
    border: 1px solid #fff;
    text-align: center;
    font-size: 14px;
    border-radius: 5px;
}
.disclaimer p { margin-bottom: 5px; }
.disclaimer p:last-child { margin-bottom: 0; }

footer .bottom {
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    row-gap: 40px;
}
footer .bottom article { width: 50%; padding-right: 5px; }
footer .bottom article.newsletter-col { width: 100%; }
footer article p strong { font-size: 18px; }
footer article p { margin-bottom: 5px; font-size: 16px; }
footer article li { margin-bottom: 4px; }
footer article li a {
    color: #fff;
    font-size: 15px;
    text-transform: capitalize;
}
footer article li a:hover { opacity: .5; }

footer .newsletter-col form {
    margin-top: 15px;
    position: relative;
    max-width: 420px;
}
footer .newsletter-col input[type="email"] {
    height: 44px;
    background-color: #fff;
    padding: 10px 55px 10px 10px;
    color: #000;
    width: 100%;
    font-size: 16px;
    border: 1px solid #fff;
    border-radius: 4px;
    outline: none;
}
footer .newsletter-col .mail-submit {
    position: absolute;
    right: 5px;
    top: 3px;
    width: 40px;
    height: 38px;
    background-color: #705BDA;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: .3s;
}
footer .newsletter-col .mail-submit:hover { background-color: #5a46c0; }
footer .newsletter-col .mail-submit svg {
    width: 20px;
    height: 20px;
    stroke: #fff;
    stroke-width: 1.6;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.foot-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 30px;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid rgba(255,255,255,.45);
}
.foot-meta .meta-block { width: 100%; }
.foot-meta .meta-block p { margin-bottom: 10px; font-size: 18px; }
.foot-meta .meta-block p strong { font-size: inherit; font-weight: 600; }
.foot-copy {
    margin-left: auto;
    text-align: right;
    font-size: 14px;
}
.foot-copy p { margin-bottom: 20px; font-size: 14px; }
.foot-copy p:last-child { margin-bottom: 0; }
.foot-copy .credit { opacity: .95; }
.foot-copy .credit a { color: #fff; text-decoration: underline; }
.foot-copy .credit a:hover { opacity: .7; }

.socials { display: flex; align-items: center; gap: 10px; }
.socials a {
    padding: 7px;
    border: 1px solid #fff;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .3s;
}
.socials a:hover { background-color: #fff; color: #705BDA; }
.socials svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 1.2;
    color: #fff;
}
.socials a:hover svg { color: #705BDA; }

@media (min-width: 992px) {
    .foot-meta { column-gap: 0; }
    .foot-meta .meta-block:nth-child(1) { width: 19%; }
    .foot-meta .meta-block:nth-child(2) { width: 16%; }
    .foot-meta .meta-block:nth-child(3) { width: 45%; }
    .foot-copy { width: 20%; align-self: flex-end; margin-left: 0; }
    .foot-meta .meta-block p { font-size: 16px; }
    .foot-copy .credit { font-size: 13px; white-space: nowrap; }
}

.payments { display: flex; flex-wrap: wrap; gap: 8px; }
.pay-badge {
    background-color: #fff;
    border-radius: 4px;
    height: 36px;
    min-width: 56px;
    padding: 0 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .5px;
    color: #1a1f71;
}
.pay-visa { color: #1a1f71; font-style: italic; }
.pay-mc { gap: 0; }
.pay-mc i {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: inline-block;
}
.pay-mc i:first-child { background-color: #eb001b; margin-right: -6px; }
.pay-mc i:last-child { background-color: #f79e1b; opacity: .9; }
.pay-amex {
    background-color: #2671b9;
    color: #fff;
    font-size: 8px;
    line-height: 1.25;
    text-align: center;
    letter-spacing: .3px;
}

.trust { display: flex; flex-wrap: wrap; align-items: center; }
.trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 18px;
    border-right: 1px solid #fff;
    font-size: 14px;
    font-weight: 600;
}
.trust-badge:first-child { padding-left: 0; }
.trust-badge:last-child { border-right: none; }
.trust-badge svg {
    width: 30px;
    height: 30px;
    stroke: #fff;
    stroke-width: 1.5;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex-shrink: 0;
}
.tb-text { display: flex; flex-direction: column; line-height: 1.15; }
.tb-text b { font-size: 14px; font-weight: 800; letter-spacing: .3px; }
.tb-text i { font-style: normal; font-size: 9px; letter-spacing: 1.2px; opacity: .9; }
.tb-tp .tp-star { fill: #00b67a; stroke: none; width: 26px; height: 26px; }
.tp-stars { display: inline-flex; gap: 1.5px; margin-top: 2px; }
.tp-stars u {
    width: 9px;
    height: 9px;
    background-color: #00b67a;
    display: inline-block;
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

@media (min-width: 992px) {
    footer .top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
        gap: 40px;
    }
    footer .logo { margin: 0; }
    .disclaimer { width: 72%; }
    footer .bottom article { width: 17%; }
    footer .bottom article.newsletter-col { width: 32%; }
}

/* ---------- copyright ---------- */
.copyright {
    background-color: #f4f4f4;
    font-size: 13px;
    padding: 15px;
    text-align: left;
    color: #444;
    line-height: 1.55;
}
.copyright p { margin-bottom: 8px; }
.copyright p:last-child { margin-bottom: 0; }

/* =========================================================
   PRODUCT DETAIL PAGE
   ========================================================= */
/* --- 顶部 Research Use Only 提示条 --- */
.RHN_description { padding: 20px 0; }
.RHN_box_content {
    background-color: #f8f8f8;
    border-radius: 5px;
    padding: 15px 20px 15px 45px;
    position: relative;
}
.RHN_box_content p { font-size: 16px; margin: 0; }
.RHN_box_content p strong { color: #705BDA; font-weight: 600; position: relative; }
.RHN_box_content p strong::before {
    content: '';
    position: absolute;
    left: -28px;
    top: 2px;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23705bda' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.8' r='1' fill='%23705bda' stroke='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}

/* --- 主体三栏 --- */
.product__wrap { padding: 20px 0; overflow: hidden; }
.pw-row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.pw-media, .pw-desc, .pw-buy { width: 100%; padding: 0 15px; }

.slck_slider_wrap { margin-bottom: 30px; }
.Slick_slider .product_img_slide {
    position: relative;
    height: 300px;
    overflow: hidden;
    background-color: #fff;
}
.Slick_slider .product_img_slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}
.Slick_slider_nav { display: none; margin-top: 25px; gap: 10px; }
.Slick_slider_nav .product_img_slide {
    height: 80px;
    width: 80px;
    border: 1px solid #ccc;
    padding: 5px;
    background-color: #fff;
    cursor: pointer;
}
.Slick_slider_nav .product_img_slide img { width: 100%; height: 100%; object-fit: contain; }

.pro-mob-title { font-size: 25px; margin-bottom: 20px; color: #705BDA; font-weight: 700; }

.tested_form { text-align: center; margin-bottom: 10px; }
.tested_form p { text-transform: uppercase; font-weight: 600; text-align: left; margin-bottom: 12px; }
.tested_form ul {
    display: grid;
    grid-template-columns: 50% 50%;
    row-gap: 10px;
    padding: 0;
    margin: 0 0 20px;
    text-align: left;
    list-style: none;
}
.tested_form ul li {
    position: relative;
    font-weight: 600;
    text-transform: uppercase;
    background: rgba(112, 91, 218, .15);
    border-radius: 8px;
    border-left: 3px solid #705BDA;
    color: #333;
    display: flex;
    align-items: center;
    width: 86%;
    margin-left: 24px;
    font-size: 12px;
    padding: 7px;
}
.tested_form ul li:nth-child(even) { margin-left: auto; }
.tested_form ul li::before {
    content: '';
    position: absolute;
    left: -22px;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23705bda' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5 11-11'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}
.tested_form .btn-ctn { width: 100%; }

.product_description { margin-top: 30px; }
.product_description h1 { font-size: 25px; margin-bottom: 10px; color: #705BDA; line-height: 1.3; }
.short-desc p { margin-bottom: 14px; }
.short-desc p:last-child { margin-bottom: 0; }
.short-desc sup { font-size: 11px; color: #705BDA; }
.short-desc a, .product_description a { color: #705BDA; text-decoration: underline; }
.short-desc a:hover, .product_description a:hover { text-decoration: none; }

.right_div_content { margin-top: 25px; }
.infor_wrap {
    background-color: #705BDA;
    border-radius: 5px;
    padding: 15px 20px;
    margin-bottom: 20px;
}
.infor_wrap p { margin: 0; color: #fff; padding-left: 28px; position: relative; }
.infor_wrap p::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.8' r='1' fill='%23fff' stroke='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}
.pd-sizes > p { font-weight: 600; margin-bottom: 8px; }
.pd-sizes .variation-buttons {
    justify-content: flex-start;
    margin-bottom: 0;
    min-height: 0;
}
.pw-buy .pd-buy {
    border: 1px solid #d6e6ff;
    background: #f5f7fb;
    padding: 15px;
    margin: 25px 0;
    border-radius: 5px;
}
.pd-add { flex: 1; min-width: 160px; }
.pd-wishlist {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #1e1e1f;
}
.pd-wishlist .ic { width: 18px; height: 18px; fill: none; stroke: #1e1e1f; stroke-width: 1.6; }
.pd-wishlist:hover, .pd-wishlist.wl-on { color: #705BDA; }
.pd-wishlist:hover .ic, .pd-wishlist.wl-on .ic { stroke: #705BDA; }
.pd-wishlist.wl-on .ic { fill: #705BDA; }

/* --- 详情页标签区 --- */
.RHN_tabs_wrap { padding: 20px 0; scroll-margin: 40px; }
.tabs-row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.sidebar_item_links { display: none; padding: 0 15px; }
.tabs-main { width: 100%; padding: 0 15px; min-width: 0; }
.sidebar_item_links article { margin-bottom: 30px; }
.sidebar_item_links article:last-child { margin-bottom: 0; }
.sidebar_item_links p { margin: 0 0 10px; }
.sidebar_item_links p a { color: #705BDA; font-weight: 700; }
.sidebar_item_links ul { list-style: none; padding: 0; margin: 0; }
.sidebar_item_links ul li a { color: #000; font-size: 14px; display: block; margin-bottom: 8px; }
.sidebar_item_links ul li a:hover { color: #705BDA; }

.tabs-main .product_description.mob-only {
    margin: 0 0 25px;
    border-bottom: 1px solid #705BDA;
    padding-bottom: 15px;
}
.tabs-main .product_description.mob-only h1 { font-size: 25px; }

.tab_grid .nav {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0;
    list-style: none;
    padding: 0 0 4px;
    margin: 0 0 25px;
    border-bottom: 1px solid #e3e3e3;
}
.tab_grid .nav li { padding: 4px; margin: 0; white-space: nowrap; }
.tab_grid .nav li .btn-ctn {
    background-color: transparent;
    color: #705BDA;
    border: none;
    border-radius: 5px;
    padding: 5px 12px;
    font-size: 16px;
    position: relative;
    cursor: pointer;
}
.tab_grid .nav li .btn-ctn.active { font-weight: 600; }
.tab_grid .nav li .btn-ctn.active::after,
.tab_grid .nav li .btn-ctn:hover::after {
    content: '';
    height: 2px;
    width: 90%;
    background-color: #705BDA;
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%);
}
.tab_grid .nav::-webkit-scrollbar { height: 3px; background: #e0e0e0; }
.tab_grid .nav::-webkit-scrollbar-thumb { background: #705BDA; border-radius: 4px; }

.tab_grid .tab-pane { display: none; }
.tab_grid .tab-pane.active { display: block; }

.tab_descriptio { border-bottom: 1px solid #705BDA; margin-bottom: 25px; padding-bottom: 15px; }
.tab_descriptio:last-child { border: none; margin-bottom: 0; padding-bottom: 0; }
.tab_title { margin-bottom: 20px; }
.tab_descriptio h2 {
    color: #fff;
    font-size: 22px;
    display: inline-block;
    background-color: #705BDA;
    padding: 3px 15px;
    text-shadow: 1px 1px 1px #000;
    margin: 0;
    font-weight: 500;
    line-height: 1.4;
}
.tab_descriptio p { margin-bottom: 16px; }
.tab_descriptio p a, .accordion-body p a { color: #705BDA; text-decoration: underline; }
.tab_descriptio p a:hover, .accordion-body p a:hover { text-decoration: none; }
.tab_descriptio sup, .accordion-body sup { font-size: 11px; color: #705BDA; }
.tab_descriptio ul, .accordion-body ul { padding-left: 18px; margin-bottom: 20px; }
.tab_descriptio ul li, .accordion-body ul li { list-style-type: disc; margin-bottom: 10px; }
.tab_descriptio h3, .tab_descriptio h4 { font-size: 18px; margin: 18px 0 10px; }

.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tab_descriptio .table-responsive { margin-bottom: 20px; }
.tab_descriptio .table-responsive:last-child { margin-bottom: 0; }
.table { width: 100%; border-collapse: collapse; border: 1px solid #ddd; }
.table tr td { padding: 12px; border: 1px solid #ddd; font-size: 16px; }
.table thead tr td { background-color: #f7f7f8; }

.lab-row { display: flex; flex-wrap: wrap; flex-direction: column-reverse; margin: 0 -15px; }
.lab-col-left, .lab-col-right { width: 100%; padding: 0 15px; }
.col-inner {
    text-align: left;
    background-color: #f5f5f5;
    padding: 17px 30px;
    border-radius: 5px;
    margin-bottom: 30px;
    margin-top: 10px;
}
.col-inner h5 {
    font-size: 17px;
    border-bottom: 1px solid #e3e3e3;
    padding-bottom: 8px;
    margin-bottom: 10px;
}
.col-inner p { line-height: 30px; margin-bottom: 0; }
.col-table .table-responsive { margin-bottom: 22px; }
.col-table .table thead tr td {
    font-weight: 700;
    background-color: #705BDA;
    color: #fff;
    text-align: center;
}
.col-table .table tbody tr:nth-child(odd) td { background-color: rgba(0, 0, 50, .02); }
.col-table .table tbody tr td:first-child { font-weight: 500; }

.main-slider-section h3 { font-weight: 600; text-align: center; font-size: 20px; margin-bottom: 16px; }
.coa-slider { position: relative; }
.coa-track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.coa-track::-webkit-scrollbar { display: none; }
.coa-slide { flex: 0 0 100%; scroll-snap-align: start; padding: 0 30px; }
.coa-slide img {
    width: 100%;
    height: 320px;
    object-fit: contain;
    background: #fff;
    cursor: pointer;
}
.coa-slide p { text-align: center; padding-bottom: 30px; transition: color .3s; }
.coa-slide p:hover { color: #705BDA; }
.coa-prev, .coa-next {
    position: absolute;
    top: 45%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: none;
    background-color: #705BDA;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}
.coa-prev { left: 0; }
.coa-next { right: 0; }

/* --- 底部固定购买条 --- */
.bottom_fixed_bar {
    background: #fff;
    position: fixed;
    z-index: 99;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 12px 0;
    box-shadow: 0 2px 20px rgba(0, 0, 0, .5);
    transition: transform .3s, opacity .3s;
    transform: translateY(100%);
    opacity: 0;
    visibility: hidden;
}
.bottom_fixed_bar.show { transform: translateY(0); opacity: 1; visibility: visible; }
.bottom_fixed_bar .left_box { display: none; align-items: center; gap: 14px; }
.bottom_fixed_bar .fixed-bar-img { width: 60px; height: 50px; object-fit: contain; }
.bottom_fixed_bar .product_title { font-weight: 600; }
.select_amount { display: flex; gap: 10px; }
.div_price {
    border: 1px solid #705BDA;
    background: #fff;
    color: #1e1e1f;
    font-size: 16px;
    padding: 6px 16px;
    cursor: pointer;
    transition: .3s;
    border-radius: 5px;
    text-align: center;
}
.div_price.active, .div_price:hover { background-color: #705BDA; color: #fff; }
.qty-box { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.qty-control { display: none; align-items: center; background: #fff; border: 1px solid #ddd; border-radius: 5px; overflow: hidden; }
.qty-control input { width: 45px; text-align: center; border: none; height: 45px; outline: none; }
.qty-btn { width: 45px; border: none; background: #fff; font-size: 20px; height: 45px; cursor: pointer; }
.custom-fixedbar-options { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.custom-mg-select, .custom-qty-select { width: 100%; position: relative; }
.custom-fixedbar-options label { font-weight: 500; font-size: 14px; position: absolute; left: 10px; top: 4px; }
.custom-fixedbar-options select {
    appearance: none;
    width: 100%;
    padding: 22px 10px 4px;
    font-size: 14px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23705bda' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 12px;
    background-position: 96% 75%;
    border: 1px solid rgba(0, 0, 0, .31);
    border-radius: 4px;
    color: #705BDA;
}
.add-cart-btn {
    padding: 8px 10px;
    background: #705BDA;
    color: #fff;
    border: 1px solid #705BDA;
    width: 100%;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
}
.add-cart-btn:hover { background: #5a48b8; }

@media (min-width: 601px) {
    .pw-media { width: 50%; }
    .pw-desc { width: 50%; }
    .pw-buy { width: 100%; }
    .pro-mob-title { display: none; }
    .product_description { margin-top: 0; }
    .tabs-main .product_description.mob-only { display: none; }
    .tab_descriptio.for-mobile { display: none; }
    .Slick_slider_nav { display: flex; }
    .Slick_slider .product_img_slide { height: 420px; }
    .bottom_fixed_bar .fixed_bar_title { display: flex; align-items: center; }
}
@media (min-width: 768px) {
    .sidebar_item_links { display: block; width: 26%; }
    .tabs-main { width: 74%; }
    .lab-row { flex-direction: row; }
    .lab-col-left { width: 42%; }
    .lab-col-right { width: 58%; }
}
@media (min-width: 992px) {
    .pw-media { width: 30%; }
    .pw-desc { width: 40%; }
    .pw-buy { width: 30%; }
    .sidebar_item_links { width: 22%; }
    .tabs-main { width: 78%; }
    .bottom_fixed_bar .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
    .bottom_fixed_bar .left_box { display: flex; }
    .bottom_fixed_bar .qty-control { display: flex; }
    .custom-fixedbar-options { display: none; }
    .qty-box { flex-direction: row; }
    .add-cart-btn { padding: 12px 15px; width: 200px; }
}
@media (min-width: 1201px) {
    .RHN_description { padding: 30px 0; }
    .product__wrap { padding: 50px 0; }
    .RHN_tabs_wrap { padding: 50px 0; scroll-margin: 50px; }
    .tab_descriptio h2 { font-size: 25px; }
}
@media (min-width: 1401px) {
    .tested_form ul li { width: 84%; font-size: 13px; }
    .tab_descriptio h2 { font-size: 30px; }
}
@media (min-width: 1699px) {
    .product_description h1 { font-size: 32px; }
}
@media (max-width: 600px) {
    .slck_slider_wrap { margin-bottom: 0; }
    .pw-desc .product_description { display: none; }
    .tab_grid .nav li .btn-ctn { padding: 5px 10px; }
}

/* =========================================================
   BLOG / RESEARCH HUB
   ========================================================= */
.Blog-grid { padding-bottom: 40px; }
.blog-page-head { padding: 30px 0 25px; text-align: center; }
.blog-page-head h1 {
    color: #000;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 15px;
}
@media (min-width: 1201px) { .blog-page-head h1 { font-size: 28px; line-height: 40px; } }
@media (min-width: 1401px) { .blog-page-head h1 { font-size: 32px; line-height: 46px; } }
.blog-banner-desc p {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.rank-math-breadcrumb p { margin: 0; font-size: 14px; }
.rank-math-breadcrumb a { color: #705BDA; }
.rank-math-breadcrumb a:hover { text-decoration: underline; }
.rank-math-breadcrumb .separator { margin: 0 4px; color: #888; }
.rank-math-breadcrumb .last { color: #555; }

.blog-search { margin-bottom: 40px; }
.blog-search form { display: flex; align-items: center; position: relative; }
.blog-search input[type="search"] {
    width: 100%;
    height: 45px;
    border: 1px solid #ccc;
    border-radius: 6px;
    color: #1e1e1f;
    padding: 8px 15px;
    font-size: 16px;
    outline: none;
    box-shadow: 1px 1px 1px #ccc;
    background-color: #fff;
}
.blog-search input[type="submit"] {
    height: 45px;
    border: 1px solid #705BDA;
    border-radius: 6px;
    color: #fff;
    padding: 8px 15px;
    font-size: inherit;
    outline: none;
    box-shadow: 1px 1px 1px #ccc;
    background-color: #705BDA;
    font-weight: 600;
    transition: .4s;
    width: 150px;
    margin-left: 12px;
    cursor: pointer;
}
.blog-search input[type="submit"]:hover { background-color: transparent; color: #705BDA; }
@media (min-width: 601px) { .blog-search { max-width: 400px; margin-left: auto; } }

.blog-main-row { display: flex; flex-wrap: wrap; }
.left-cat-column { width: 100%; }
.right-post-column { width: 100%; }

.blog-cats { margin-bottom: 20px; }
.blog-cats > p {
    padding: 15px 0;
    font-weight: 600;
    font-size: 18px;
    margin: 0 0 10px;
}
.blog-cats ul li:not(:last-child) { margin-bottom: 10px; }
.blog-cats ul li a { color: #6E6E6E; font-size: 15px; }
.blog-cats ul li a:hover { color: #705BDA; }

.blog-grid .row {
    display: flex;
    flex-wrap: wrap;
    row-gap: 30px;
}
.right-post-column .row > article { width: 100%; padding: 0 10px; }

.blog-grid .box {
    display: flex;
    flex-direction: column;
    border-radius: 5px;
    overflow: hidden;
    height: 100%;
}
.blog-grid .image {
    width: 100%;
    height: 180px;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
.blog-grid .image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-grid .image .date {
    background-color: #705BDA;
    border-radius: 5px;
    padding: 3px;
    font-size: 15px;
    text-align: center;
    color: #fff;
    position: absolute;
    left: 7px;
    top: 7px;
    width: 38px;
    height: 45px;
    font-weight: 600;
    line-height: 17px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
.blog-grid .image .date span { display: block; font-weight: 400; font-size: 12px; }
.p-cats { position: absolute; bottom: 8px; left: 7px; }
.p-cats ul { display: flex; flex-wrap: wrap; gap: 5px; }
.p-cats ul li a {
    background-color: #705BDA;
    border-radius: 5px;
    color: #fff;
    font-size: 14px;
    padding: 5px 9px;
    display: inline-block;
}
.p-cats ul li a:hover { background-color: #1e1e1f; }

.blog-grid .right { padding-top: 12px; }
.metas {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
    gap: 4px 14px;
    background-color: #705BDA;
    color: #fff;
    padding: 3px 8px;
    margin-bottom: 12px;
}
.metas .meta { display: flex; align-items: center; gap: 6px; }
.metas .meta:nth-child(1) { flex: 0 0 100%; }
.metas .ic { width: 14px; height: 14px; }
.blog-grid .title h2 {
    font-size: 17px;
    line-height: 1.4;
    margin: 0 0 8px;
    text-transform: capitalize;
}
.blog-grid .title h2 a { color: #1e1e1f; }
.blog-grid .title h2 a:hover { color: #705BDA; }
.blog-grid .desc {
    font-size: 14px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
    line-clamp: 3;
    -webkit-line-clamp: 3;
}
.blog-grid .desc p { margin: 0; }

.blog-pagination ul { display: flex; margin: 0 12px; }
.blog-pagination ul li { margin: 0 4px; }
.blog-pagination ul li a, .blog-pagination ul li span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid #ddd;
    border-radius: 5px;
    color: #000;
    transition: .3s;
}
.blog-pagination ul li a:hover { background-color: #705BDA; color: #fff; border-color: #705BDA; }
.blog-pagination ul li.current span { background-color: #705BDA; color: #fff; border-color: #705BDA; }

@media (min-width: 768px) {
    .blog-cats {
        border-right: 1px solid #ccc;
        padding-right: 15px;
        margin: 0;
        height: 100%;
    }
    .right-post-column .row > article { width: 100%; }
}
@media (min-width: 992px) {
    .left-cat-column { width: 20%; }
    .right-post-column { width: 80%; }
    .right-post-column { padding-left: 20px; }
    .blog-grid .row { row-gap: 50px; }
    .right-post-column .row > article { width: 50%; }
}
@media (min-width: 1201px) {
    .right-post-column .row > article { width: 33.33%; }
}

/* =========================================================
   INNER PAGES (page head / woocommerce forms / cart / track / contact / calculator)
   ========================================================= */
.def-sec { padding: 40px 0; }
.def-sec.page-head { padding: 40px 0 10px; text-align: center; }
.def-sec.page-head h1 {
    color: #000;
    font-size: 24px;
    margin-bottom: 15px;
    line-height: 1.35;
}
@media (min-width: 768px)  { .def-sec.page-head h1 { font-size: 26px; } }
@media (min-width: 1201px) { .def-sec.page-head h1 { font-size: 30px; } }
@media (min-width: 1401px) { .def-sec.page-head h1 { font-size: 34px; } }

/* woocommerce-style forms */
.wc-sec { padding: 25px 0; }
.u-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
}
.u-column { width: 100%; max-width: 520px; }
.u-column h2 { font-size: 22px; color: #000; margin-bottom: 18px; }
@media (min-width: 768px) { .u-column { width: calc(50% - 20px); } }

.wc-form .form-row { margin-bottom: 16px; }
.wc-form label { display: block; font-weight: 500; margin-bottom: 6px; }
.wc-form .required { color: #c62828; }
.input-text {
    width: 100%;
    height: 45px;
    border: 1px solid #ccc;
    border-radius: 6px;
    color: #1e1e1f;
    padding: 8px 15px;
    font-size: 16px;
    font-family: inherit;
    outline: none;
    background-color: #fff;
    box-shadow: 1px 1px 1px #ccc;
}
.input-text:focus { border-color: #705BDA; }
textarea.input-text { height: auto; resize: vertical; }
.cb-label { display: inline-flex; align-items: center; gap: 10px; font-weight: 400; cursor: pointer; }
.cb-label input {
    appearance: none;
    width: 25px;
    height: 25px;
    border: 1px solid #705BDA;
    border-radius: 5px;
    background-color: #fff;
    position: relative;
    cursor: pointer;
    flex-shrink: 0;
}
.cb-label input:checked { background-color: #705BDA; }
.cb-label input:checked::after {
    content: '';
    position: absolute;
    left: 8px;
    top: 3px;
    width: 6px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.wc-btn {
    width: 100%;
    height: 45px;
    font-size: 18px;
    font-weight: 600;
    border-radius: 6px;
    box-shadow: 1px 1px 1px #ccc;
    margin-top: 8px;
    cursor: pointer;
}
.privacy-note { font-size: 14px; opacity: .8; }
.lost_password { margin-top: 4px; }

/* empty cart / wishlist */
.wc-empty-cart-message { margin: 10px 0 0; }
.cart-empty {
    background-color: #f7f7f8;
    padding: 12px;
    border: 1px solid #ddd;
    font-size: 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.return-to-shop { margin: 25px 0 10px; }

/* track order */
.order-check { padding: 30px 0 0; }
@media (min-width: 992px) { .order-check { padding: 50px 0 10px; } }
.order-title { text-align: center; }
.order-title h1 { margin-bottom: 15px; }
.order-title p { max-width: 670px; margin: 0 auto 12px; }
.bg-cont {
    background-color: #f8f8f8;
    max-width: 900px;
    width: 95%;
    margin: 40px auto 0;
    padding: 40px 0 70px;
    border-radius: 17px;
}
.stat-box { margin-bottom: 50px; }
.track-form {
    margin: 0 auto;
    padding: 20px;
    background-color: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0,0,0,.1);
    max-width: 400px;
}
.track-form .form-row { margin-bottom: 15px; }
.track-form .form-row:last-child { margin-bottom: 0; }
.track-form label { display: block; font-weight: 500; margin-bottom: 6px; }
.track-form .wc-btn { margin-top: 5px; }
.status-exp {
    margin-top: 30px;
    padding: 20px;
    background-color: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0,0,0,.1);
}
.status-exp h2 { font-size: 22px; color: #000; margin: 0 0 15px; }
.status-exp p { margin-bottom: 14px; }
.status-exp p:last-child { margin-bottom: 0; }

/* contact */
.contact_us_wrap { margin-top: 30px; padding-top: 0; }
.contact-row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column-reverse;
    gap: 40px;
    justify-content: center;
}
.address-col { width: 100%; max-width: 460px; }
.form-col { width: 100%; max-width: 620px; }
.form-col h2 { font-size: 22px; color: #000; margin-bottom: 18px; }
@media (min-width: 992px) {
    .contact-row { flex-direction: row; }
    .address-col { width: 34%; }
    .form-col { width: 58%; flex: 1; }
}
.address_grid {
    background-color: #fff;
    border-radius: 22px;
    border: 1px solid #ebecf3;
    padding: 20px;
    margin-top: 20px;
    box-shadow: 1px 1px 1px #ccc;
}
.address_grid ul li {
    display: flex;
    margin-bottom: 25px;
    align-items: flex-start;
}
.address_grid ul li:last-child { margin-bottom: 0; }
.image_icon {
    flex-shrink: 0;
    width: 55px;
    min-width: 55px;
    height: 55px;
    border-radius: 50%;
    border: 1px solid #ccc;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
}
.image_icon svg {
    width: 100%;
    height: 100%;
    stroke: #705BDA;
    stroke-width: 1.7;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: .4s;
}
.address_grid ul li:hover .image_icon svg { transform: rotate(10deg); }
.address_content { width: calc(100% - 55px); padding-left: 15px; }
.address_content p { margin-bottom: 6px; }
.address_content p strong { display: block; margin-bottom: 5px; font-size: 18px; }
.address_content p a {
    display: inline-block;
    color: #1e1e1f;
    position: relative;
    padding: 1px 5px;
    z-index: 1;
    text-decoration: none;
}
.address_content p a::after {
    content: '';
    position: absolute;
    left: 0;
    width: 0;
    top: 0;
    bottom: 0;
    border-radius: 10px;
    background-color: #705BDA;
    transition: .4s;
    z-index: -1;
}
.address_content p a:hover { color: #fff; }
.address_content p a:hover::after { width: 100%; }

/* reconstitution calculator */
.calc-sec { padding: 30px 0 50px; }
.calculator-container {
    max-width: 980px;
    margin: 0 auto;
    padding: 20px 18px;
    background-color: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(17,24,39,.08);
    border: 1px solid #e3e8f6;
}
.ukp-hero {
    background-color: #705BDA;
    color: #fff;
    padding: 22px 18px;
    border-radius: 16px;
    margin-bottom: 16px;
}
.ukp-hero h1 {
    margin: 0 0 6px;
    font-size: 28px;
    line-height: 1.2;
    color: #fff;
}
.ukp-hero p { margin: 0; opacity: .95; }
.step-section {
    margin-bottom: 25px;
    padding: 18px;
    background-color: #f8f9fc;
    border-radius: 10px;
    border: 1px solid #e3e8f6;
}
.step-header { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; }
.step-number {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #705BDA;
    color: #fff;
    font-weight: 600;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.step-title { font-size: 18px; font-weight: 600; margin: 0; color: #705BDA; }
.input-group { position: relative; margin-bottom: 0; }
.input-group label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; }
.input-group .input-text { box-shadow: none; border-color: #cbd5e1; margin: 0; }
.small-input { width: 50%; max-width: 240px; }
.peptide-buttons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
    gap: 10px;
}
.peptide-buttons button {
    background-color: #fff;
    border: 2px solid #e3e8f6;
    padding: 12px 6px;
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    font-weight: 600;
    color: #1e1e1f;
    transition: all .2s;
    font-size: 13px;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.peptide-buttons button:hover { border-color: #705BDA; background-color: #f8f9fc; color: #1e1e1f; }
.peptide-buttons button.active {
    background-color: #705BDA;
    border-color: #705BDA;
    color: #fff;
}
.calc-result {
    background-color: #f0fdf4;
    border: 1px solid #d1fae5;
    border-radius: 10px;
    padding: 16px;
    margin-top: 18px;
}
.calc-result-inner {
    background-color: #fff;
    padding: 18px;
    border: 1px solid #e3e8f6;
    border-radius: 8px;
}
.res-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px dashed #d1fae5;
}
.res-row:last-of-type { border-bottom: none; }
.res-row.main-res strong { color: #705BDA; font-size: 22px; }
.res-note { margin: 12px 0 0; font-size: 13px; opacity: .75; }

/* =========================================================
   SIDE CART / CART / WISHLIST / CHECKOUT
   ========================================================= */
.sc-overlay {
    position: fixed;
    inset: 0;
    background: rgba(20,18,40,.5);
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    z-index: 1060;
}
.sc-overlay.show { opacity: 1; visibility: visible; }
.side-cart {
    position: fixed;
    top: 0;
    right: 0;
    width: 420px;
    max-width: 92vw;
    height: 100vh;
    background-color: #fff;
    z-index: 1070;
    transform: translateX(105%);
    transition: transform .3s;
    display: flex;
    flex-direction: column;
    box-shadow: -12px 0 40px rgba(0,0,0,.18);
}
.side-cart.open { transform: translateX(0); }
.sc-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background-color: #705BDA;
    color: #fff;
}
.sc-title { font-size: 18px; font-weight: 700; }
.sc-title em { font-style: normal; font-weight: 400; font-size: 14px; opacity: .85; }
.sc-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}
.sc-body { flex: 1; overflow-y: auto; padding: 14px 20px; }
.sc-empty { text-align: center; padding: 40px 10px; color: #555; }
.sc-empty .btn-ctn { margin-top: 18px; }
.sc-item {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #efeff4;
    align-items: flex-start;
}
.sc-item:last-child { border-bottom: none; }
.sc-thumb { flex-shrink: 0; }
.sc-thumb img {
    width: 62px;
    height: 62px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #efeff4;
}
.sc-info { flex: 1; min-width: 0; }
.sc-name {
    display: block;
    color: #705BDA;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.35;
    margin-bottom: 3px;
}
.sc-name:hover { color: #1e1e1f; }
.sc-size {
    display: inline-block;
    background-color: #f3f0fd;
    color: #705BDA;
    border-radius: 4px;
    font-size: 12px;
    padding: 1px 8px;
    margin-bottom: 8px;
}
.sc-qty { display: inline-flex; align-items: center; border: 1px solid #d5d5dd; border-radius: 6px; overflow: hidden; }
.sc-qty button {
    width: 28px;
    height: 28px;
    border: none;
    background-color: #f7f7fa;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
    color: #444;
}
.sc-qty button:hover { background-color: #705BDA; color: #fff; }
.sc-qty span { min-width: 34px; text-align: center; font-size: 14px; font-weight: 600; }
.sc-right { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.sc-remove {
    background: none;
    border: none;
    color: #b6b6c2;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.sc-remove:hover { color: #c62828; }
.sc-line { font-weight: 700; font-size: 14px; }
.sc-foot {
    border-top: 1px solid #efeff4;
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sc-subtotal {
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    margin-bottom: 4px;
}
.sc-subtotal strong { color: #705BDA; }
.sc-foot .btn-ctn { width: 100%; }

/* cart page */
.cart-layout { display: flex; flex-wrap: wrap; gap: 30px; align-items: flex-start; margin-top: 10px; }
.cart-table-wrap { flex: 1 1 560px; overflow-x: auto; }
.cart-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.cart-table th {
    text-align: left;
    font-size: 14px;
    padding: 12px 10px;
    border-bottom: 2px solid #ececf2;
    color: #555;
}
.cart-table td { padding: 14px 10px; border-bottom: 1px solid #ececf2; vertical-align: middle; }
.ct-remove button {
    background: none;
    border: 1px solid #d5d5dd;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    font-size: 16px;
    line-height: 1;
    color: #888;
    cursor: pointer;
}
.ct-remove button:hover { border-color: #c62828; color: #c62828; }
.ct-thumb img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #ececf2;
}
.ct-name a { color: #705BDA; font-weight: 600; display: block; margin-bottom: 4px; }
.ct-name a:hover { color: #1e1e1f; }
.ct-size {
    display: inline-block;
    background-color: #f3f0fd;
    color: #705BDA;
    border-radius: 4px;
    font-size: 12px;
    padding: 1px 8px;
}
.ct-line { font-weight: 700; }
.cart-totals {
    width: 320px;
    max-width: 100%;
    border: 1px solid #ececf2;
    border-radius: 10px;
    padding: 22px;
    background-color: #fafafe;
}
.cart-totals h2 { font-size: 20px; margin: 0 0 14px; color: #000; }
.ct-row {
    display: flex;
    justify-content: space-between;
    padding: 9px 0;
    border-bottom: 1px solid #ececf2;
}
.ct-row.ct-total { border-bottom: none; font-size: 17px; }
.ct-row.ct-total strong { color: #705BDA; }
.ct-checkout { width: 100%; margin-top: 14px; }
.ct-continue { width: 100%; margin-top: 10px; }
.wl-table .a-view { font-size: 14px; padding: 6px 16px; }
.wl-btn.wl-on .ic { fill: #705BDA; stroke: #705BDA; }

/* checkout */
.checkout-layout { display: flex; flex-wrap: wrap; gap: 36px; align-items: flex-start; margin-top: 10px; }
.co-billing { flex: 1 1 480px; }
.co-billing h2, .co-review h2 { font-size: 20px; color: #000; margin: 0 0 16px; }
.co-grid { display: grid; grid-template-columns: 1fr; gap: 0 18px; }
@media (min-width: 640px) { .co-grid { grid-template-columns: 1fr 1fr; } }
.co-review {
    width: 400px;
    max-width: 100%;
    border: 1px solid #ececf2;
    border-radius: 10px;
    padding: 24px;
    background-color: #fafafe;
}
.or-table { width: 100%; border-collapse: collapse; margin-bottom: 16px; }
.or-table td { padding: 9px 0; border-bottom: 1px solid #ececf2; font-size: 15px; }
.or-table td:last-child { text-align: right; font-weight: 600; white-space: nowrap; }
.or-table .or-total td { font-size: 17px; font-weight: 700; border-bottom: none; }
.or-table .or-total td:last-child { color: #705BDA; }
.co-place { width: 100%; }
.field-error { border-color: #c62828 !important; }
.order-received {
    max-width: 640px;
    margin: 20px auto 30px;
    text-align: center;
    border: 1px solid #d1fae5;
    background-color: #f0fdf4;
    border-radius: 12px;
    padding: 44px 30px;
}
.order-received h2 { color: #2e7d32; font-size: 24px; margin-bottom: 12px; }
.order-received .btn-ctn { margin-top: 14px; }

/* product page qty stepper */
.pd-buy { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pd-qty { display: inline-flex; align-items: center; border: 1px solid #d5d5dd; border-radius: 6px; overflow: hidden; }
.pd-qty button {
    width: 38px;
    height: 42px;
    border: none;
    background-color: #f7f7fa;
    cursor: pointer;
    font-size: 17px;
    color: #444;
}
.pd-qty button:hover { background-color: #705BDA; color: #fff; }
.pd-qty input {
    width: 52px;
    height: 42px;
    border: none;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    outline: none;
    appearance: textfield;
    -moz-appearance: textfield;
}
.pd-qty input::-webkit-outer-spin-button,
.pd-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* =========================================================
   STUB PAGES (under construction)
   ========================================================= */
.page-stub { padding: 70px 0; }
.stub-box {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
    border: 1px solid #d5d5d5;
    border-radius: 10px;
    padding: 50px 30px;
    background: linear-gradient(to left, #fff, #8080801a);
}
.stub-box h1 { font-size: 26px; color: #000; margin-bottom: 12px; }
.stub-box p { margin-bottom: 24px; }

/* =========================================================
   MISC
   ========================================================= */
::selection { background: #705BDA; color: #fff; }
