
:root {
    --main: #222222;
    --white: #ffffff;
    --primary: #ee7529;
    --red_1: #db1215;
    --backdrop: rgba(0, 0, 0, 0.5);
    --yellow: #ffb321;
    --main-rgba-1: rgba(0, 0, 0, 0.16);
    --main-rgba-2: rgba(0, 0, 0, 0.15);
    --text: #545454;
    --text-2: #909090;
    --text-3: #868686;
    --line: #ebebeb;
    --line-2: #ececec;
    --bg-1: #fcfbf9;
    --bg-2: #f6f6f6;
    --bg-3: #fcffb2;
    --bg-4: #c9f4aa;
    --bg-5: #ff7b54;
    --bg-6: #8054ff;
    --bg-7: #f1f0ed;
    --bg-8: #f0edf1;
    --bg-9: #edeef1;
    --bg-10: #fcfbf9;
    --bg-11: #f2f2f2;
    --success: #31A56D;
    --bg-load: #d9d9d9;
    --bg-scrollbar-track: #f1f1f1;
    --bg-scrollbar-thumb: #c1c1c1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

/* Elements
-------------------------------------------------------------- */

html:lang(en) {
  --bs-body-font-family: "Roboto", sans-serif;
  --bs-body-font-weight: 500;
  --bs-body-font-size: 16px;
}

html:lang(th) {
  --bs-body-font-family: "Kanit",  "sans-serif";
  --bs-body-font-weight: 500;
  --bs-body-font-size: 16px;
}

span:lang(en) {
  font-family: "Roboto", sans-serif;
}

span:lang(th) {
  font-family: "Kanit", "sans-serif";
}

img {
    max-width: 100%;
    height: auto;
    transform: scale(1);
    vertical-align: middle;
    -ms-interpolation-mode: bicubic;
}

ul,
li {
    list-style-type: none;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
}

.container {
    max-width: 1540px;
}

.container-full {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0px 15px;
}


.fs-16 {
    font-size: 16px !important;
}


.fs-28 {
    font-size: 28px !important;
}


.fw-4 {
    font-weight: 400 !important;
}

.fw-5 {
    font-weight: 500 !important;
}

.fw-6 {
    font-weight: 600 !important;
}

.fw-7 {
    font-weight: 700 !important;
}

.fw-8 {
    font-weight: 800 !important;
}

.bg_white {
    background-color: var(--white) !important;
}


.bg_grey-5 {
    background-color: #f6f6f6;
}


.text_black-2 {
    color: var(--text) !important;
}


.text_white {
    color: var(--white) !important;
}

a {
    transition: all 0.3s ease;
    text-decoration: none;
    cursor: pointer;
    display: inline-block;
    color: var(--main);
}

a:focus, a:hover {
    transition: all 0.3s ease;
    text-decoration: none;
    outline: 0;
}

.link {
    transition: all 0.3s ease;
}

.link:hover {
    color: var(--primary) !important;
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.grid-6 {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
}


.line {
    border-bottom: 1px solid var(--line);
}


.no-line {
    border: 0 !important;
}


.radius-3 {
    border-radius: 3px !important;
}

.radius-5 {
    border-radius: 5px !important;
}

.radius-10 {
    border-radius: 10px !important;
}

.radius-20 {
    border-radius: 20px !important;
}

.radius-60 {
    border-radius: 60px !important;
}

.rounded-full {
    border-radius: 999px !important;
}

.o-hidden {
    overflow: hidden;
}

.px_15 {
    padding-left: 15px;
    padding-right: 15px;
}

.pt_0 {
    padding-top: 0px !important;
}

.pb_0 {
    padding-bottom: 0px !important;
}


.mt_140 {
    margin-top: 140px;
}



.mb_20 {
    margin-bottom: 20px;
}

.mb_24 {
    margin-bottom: 24px !important;
}


.mb_200 {
    margin-bottom: 200px;
}

.flat-spacing-1 {
    padding: 70px 0;
}

.flat-spacing-2 {
    padding: 45px 0 70px;
}

[data-grid=grid-1] {
    display: grid;
    gap: 30px;
    grid-template-columns: 1fr;
}

[data-grid=grid-2] {
    display: grid;
    gap: 30px;
    grid-template-columns: 1fr 1fr;
}

[data-grid=grid-3] {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
}

[data-grid=grid-4] {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(4, 1fr);
}

[data-grid=grid-5] {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(5, 1fr);
}

[data-grid=grid-6] {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(6, 1fr);
}


.tf-row-flex {
    display: flex;
    flex-direction: row;
    column-gap: 30px;
    row-gap: 30px;
}
.tf-row-flex > * {
    min-width: 0;
}



.sticky-top {
    z-index: 50;
    top: 15px;
}

.letter-spacing-2 {
    letter-spacing: 2px;
}


.text-start {
    text-align: start !important;
}


.left-0 {
    left: 0 !important;
}

.right-0 {
    right: 0 !important;
}

.bottom {
    bottom: 0 !important;
}

.top {
    top: 0 !important;
}

.clear::before, .clear::after {
    display: none !important;
}


.tf-top-bar_wrap {
    padding: 10px 0px;
}

@keyframes slide-har {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-100%);
    }
}


.header-default .wrapper-header {
    min-height: 64px;
}

.header-default .wrapper-header .nav-icon li:last-child .nav-icon-item {
    margin-right: 10px;
}

.header-default .box-nav-ul {
    gap: 22px;
}


#header .box-nav-ul .item-link {
    font-size: 16px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: all 0.3s ease;
    position: relative;
}

#header .box-nav-ul .item-link .icon {
    font-size: 7px;
}

#header .box-nav-ul .item-link::before {
    content: "";
    width: 0;
    height: 1px;
    top: 99%;
    position: absolute;
    left: auto;
    right: 0;
    z-index: 1;
    transition: width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
    background: var(--main);
}

#header .box-nav-ul li:hover .item-link::before {
    width: 100%;
    left: 0;
    right: auto;
}

#header .nav-icon .icon {
    font-size: 18px;
    font-weight: 500;
}

#header .nav-icon li {
    display: inline-flex;
}

#header .nav-icon .nav-icon-item {
    position: relative;
    display: inline-flex;
}

#header .nav-icon .nav-icon-item:hover {
    color: var(--primary);
}

#header .nav-icon .nav-icon-item .text {
    font-size: 16px;
    line-height: 25.6px;
    font-weight: 500;
    display: inline-block;
}

#header .nav-icon .count-box {
    position: absolute;
    line-height: 18px;
    height: 18px;
    min-width: 18px;
    text-align: center;
    padding: 0 3px;
    font-size: 10px;
    font-weight: 500;
    border-radius: 9999px;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    overflow: hidden;
    z-index: 2;
    top: -8px;
    right: -10px;
    color: var(--white);
    background-color: var(--primary);
}


#header .sub-menu .hover-sw-nav .nav-sw {
    width: 36px;
    height: 36px;
    top: 38%;
}



.box-nav-ul .menu-item {
    padding: 36px 0px;
}

.box-nav-ul .menu-item:hover > .sub-menu {
    pointer-events: all;
    opacity: 1;
    visibility: visible;
    transform: translateX(0px) translateY(0px);
}

.box-nav-ul .menu-item:hover > a::after {
    display: block;
}

.box-nav-ul .menu-item > a::after {
    position: absolute;
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% + 44px);
    height: 94px;
    display: none;
}

.box-nav-ul .sub-menu {
    pointer-events: none;
    position: absolute;
    background-color: var(--white);
    min-width: 200px;
    z-index: 999;
    visibility: hidden;
    text-align: left;
    padding-top: 24px;
    padding-bottom: 24px;
    padding-inline-end: 20px;
    padding-inline-start: 19px;
    top: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translateX(0px) translateY(15px);
    box-shadow: 0 4px 8px rgb(235, 235, 235);
    transition: all 0.3s ease;
}

.box-nav-ul .mega-menu {
    padding-top: 37px;
    padding-bottom: 42px;
    border: none;
    max-height: calc(100vh - 74px);
    overflow: auto;
    left: 0;
    right: 0;
}

.box-nav-ul .mega-menu .card-product .card-product-wrapper {
    max-height: 290px;
}

.box-nav-ul .mega-menu .wrap-sw-over {
    padding-bottom: 40px;
    margin-bottom: -40px;
}


.box-nav-ul .menu-list .menu-link-text {
    color: var(--text);
}

.box-nav-ul .menu-list li {
    text-align: start;
}

.box-nav-ul .menu-list li:not(:last-child) {
    margin-bottom: 14px;
}


.box-nav-ul .submenu-default {
    left: -110px;
}




.mega-menu .collection-item .collection-title {
    background-color: #f2f2f2;
    border-radius: 3px;
}

.mega-menu .collection-item .collection-content {
    bottom: 40px;
}

.mega-menu .collection-item .tf-btn .icon {
    margin: 0px;
}

.mega-page {
    max-width: 900px;
    margin: auto;
}

.canvas-mb {
    width: 100% !important;
    max-width: min(90%, 320px);
    border-right: 0 !important;
}

.canvas-mb .mb-canvas-content {
    padding-top: 60px;
    padding-bottom: 0;
    padding-inline-end: 0;
    padding-inline-start: 20px;
    min-width: 100%;
    max-width: min(90%, 320px);
    grid-auto-rows: minmax(0, 1fr) auto;
    isolation: isolate;
    height: 100%;
    width: 100%;
    display: grid;
    align-content: start;
}

.canvas-mb .mb-body {
    padding-right: 15px;
    overscroll-behavior-y: contain;
    overflow-y: auto;
}

.canvas-mb .icon-close-popup {
    position: absolute;
    font-size: 16px;
    z-index: 3;
    top: 20px;
    left: 15px;
    background-color: transparent;
    border: none;
    height: 30px;
    width: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--main);
}

.canvas-mb .mb-other-content .group-icon {
    gap: 9px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}

.canvas-mb .mb-other-content .text-need {
    font-weight: 500;
    border-bottom: 1px solid var(--main);
    margin-bottom: 11px;
}

.canvas-mb .mb-other-content .mb-info li {
    color: rgb(134, 134, 134);
    font-size: 14px;
    line-height: 24px;
}

.nav-ul-mb .nav-mb-item {
    padding: 2px 0px;
}

.nav-ul-mb .nav-mb-item:not(:last-child) {
    border-bottom: 1px solid rgb(238, 238, 238);
}

.nav-ul-mb .nav-mb-item .mb-menu-link {
    min-height: 40px;
    font-weight: 500;
    font-size: 14px;
    color: var(--main);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.nav-ul-mb .nav-mb-item .mb-menu-link:not(.collapsed) .btn-open-sub::before {
    transform: rotate(90deg);
}

.nav-ul-mb .btn-open-sub {
    position: relative;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-ul-mb .btn-open-sub:after, .nav-ul-mb .btn-open-sub::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--main);
    transition: 0.4s ease 0.1s;
    margin: auto;
}

.nav-ul-mb .btn-open-sub::before {
    width: 2px;
    height: 12px;
}

.nav-ul-mb .btn-open-sub::after {
    width: 12px;
    height: 2px;
}

.nav-ul-mb .sub-nav-menu {
    margin-left: 10px;
    padding-left: 19px;
    margin-bottom: 26px;
    border-left: 1px solid rgb(236, 236, 236);
}



header {
    position: sticky;
    position: -webkit-sticky;
    top: 0;
    left: 0;
    right: 0;
    transition: 0.15s ease-out;
    z-index: 888;
    background-color: var(--white);
}

header.header-bg {
    background-color: var(--white);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}


/*------------ footer ---------------- */
.footer .footer-wrap .footer-body {
    padding-top: 40px;
    padding-bottom: 40px;
    position: relative;
}

.footer .footer-wrap .footer-body::before {
    position: absolute;
    content: "";
    top: 0;
    left: 50%;
    background-color: var(--line);
    height: 1px;
    width: 100%;
    max-width: 1440px;
    transform: translateX(-50%);
}

.footer .footer-wrap .footer-bottom .footer-bottom-wrap {
    padding-top: 21px;
    border-top: 1px solid var(--line);
    padding-bottom: 20px;
}

.footer .footer-wrap .footer-bottom .footer-bottom-wrap .footer-menu_item {
    color: rgb(84, 84, 84);
}


/* .footer .footer-logo {
    margin-bottom: 30px;
} */

.footer .footer-heading {
    margin-bottom: 18px;
}

.footer .footer-heading h6 {
    font-size: 18px;
    font-weight: 800;
    line-height: 18px;
}

.footer .footer-heading-moblie {
    display: none;
}

.footer .footer-menu_item {
    line-height: 30px;
}

.footer .footer-infor ul {
    margin-bottom: 15px;
}

.footer .footer-infor ul li p {
    line-height: 30px;
}

.footer .footer-infor ul li p a {
    color: rgb(84, 84, 84);
    font-weight: 700;
}

.footer .footer-infor > a {
    margin-bottom: 28px;
}

.footer ul.footer-menu-list li a:hover {
    color: var(--primary);
}




.footer.background-gray {
    background-color: #F6F6F6;
}

.footer.background-gray .footer-body::before {
    content: none;
}


.tf-cur {
    display: flex;
    gap: 28px;
}

.tf-payment {
    display: flex;
    gap: 10px;
}

/* Footer中的支付图标缩小 - 使用transform scale */
.footer-bottom .tf-payment svg {
    transform: scale(0.74);
    transform-origin: center;
}

.tf-toolbar-bottom {
    display: none;
    padding: 0 5px;
    overflow-x: auto;
    overflow-y: hidden;
    position: fixed;
    z-index: 200;
    bottom: 0;
    right: 0;
    left: 0;
    background-color: var(--white);
    box-shadow: 0 -4px 10px 0 rgba(0, 0, 0, 0.08);
}

.tf-toolbar-bottom .toolbar-item {
    flex: 1 0 20%;
    position: relative;
}

.tf-toolbar-bottom .toolbar-item a {
    width: 100%;
    padding-right: 10px;
    padding-left: 10px;
    height: 67px;
    gap: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.tf-toolbar-bottom .toolbar-item a .toolbar-icon {
    width: 18px;
    height: 18px;
    position: relative;
}

.tf-toolbar-bottom .toolbar-item a .toolbar-icon i {
    font-size: 18px;
    color: var(--main);
}

.tf-toolbar-bottom .toolbar-item a .toolbar-icon .toolbar-count {
    position: absolute;
    top: -6px;
    right: -12px;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--primary);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 500;
    line-height: 18px;
    color: var(--white);
}

.tf-toolbar-bottom .toolbar-item a .toolbar-label {
    font-size: 12px;
    font-weight: 600;
    line-height: 12px;
}

.tf-toolbar-bottom .toolbar-item.active::before {
    position: absolute;
    content: "";
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--primary);
}

.tf-toolbar-bottom .toolbar-item.active .toolbar-icon i {
    color: var(--primary);
}

/*------------ tabs ---------------- */
.widget-tabs .widget-menu-tab .item-title:not(.default) {
    font-size: 18px;
    font-weight: 600;
    line-height: 30px;
    cursor: pointer;
    position: relative;
}

.widget-tabs .widget-menu-tab .item-title:not(.default)::after {
    position: absolute;
    content: "";
    background-color: var(--main);
    transition: all 0.3s ease;
}

.widget-tabs .widget-content-tab {
    position: relative;
    overflow: hidden;
}

.widget-tabs .widget-content-tab .widget-content-inner {
    padding: 35px;
    display: block;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    transform: translateY(30px);
    transition-timing-function: ease-in;
    transition-duration: 0.2s;
}

.widget-tabs .widget-content-tab .widget-content-inner.active {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
    position: relative;
    z-index: 2;
    transform: none;
    transition-timing-function: ease-out;
    transition-duration: 0.3s;
    transition-delay: 0.3s;
}

.widget-tabs.style-has-border {
    border: 1px solid var(--line);
}

.widget-tabs.style-has-border .widget-menu-tab {
    display: flex;
    gap: 10px 50px;
    margin: 0 38px;
    border-bottom: 1px solid var(--line);
    overflow-x: auto;
}

.widget-tabs.style-has-border .widget-menu-tab .item-title {
    padding: 15px 0;
    min-width: max-content;
}

.widget-tabs.style-has-border .widget-menu-tab .item-title::after {
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
}

.widget-tabs.style-has-border .widget-menu-tab .item-title.active::after {
    width: 100%;
}


/*------------ slider banner ---------------- */
.wrap-slider {
    position: relative;
}

.wrap-slider img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wrap-slider .box-content {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.wrap-slider .box-content .heading, .wrap-slider .box-content h1 {
    margin-bottom: 18px;
}


.wrap-slider .box-content p {
    margin-bottom: 48px;
    font-size: 20px;
    line-height: 24px;
}


.tf-slideshow {
    overflow: hidden;
}

.tf-slideshow .wrap-pagination {
    position: absolute;
    z-index: 10;
    bottom: 20px;
    left: 0;
    right: 0;
}

.tf-slideshow .wrap-pagination .sw-dots {
    margin-top: 0;
}


.tf-slideshow .subheading {
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 22.4px;
}


.slider-effect-fade .swiper-slide .fade-item {
    transform: translateY(100px);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}


.slider-effect-fade .swiper-slide .fade-item.fade-item-1 {
    transition-delay: 0.5s;
}

.slider-effect-fade .swiper-slide .fade-item.fade-item-2 {
    transition-delay: 0.6s;
}

.slider-effect-fade .swiper-slide .fade-item.fade-item-3 {
    transition-delay: 0.7s;
}

.slider-effect-fade .swiper-slide .fade-item.fade-item-4 {
    transition-delay: 0.8s;
}

.slider-effect-fade .swiper-slide.swiper-slide-active .fade-item {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}



.hover-sw-nav .sw-dots {
    margin-top: 15px;
    position: relative;
    z-index: 10;
    display: none;
    transform: unset !important;
    bottom: unset;
}

.slider-effect {
    position: relative;
}

.slider-effect.wrap-slider {
    height: auto !important;
}

.swiper-slide .box-content {
    opacity: 0;
}

.swiper-slide.swiper-slide-active .box-content {
    opacity: 1;
}


.tf-slideshow .box-content .subheading {
    margin-bottom: 14px;
}

.slider-radius {
    padding: 0 40px;
}

.slider-radius .tf-sw-slideshow {
    border-radius: 60px;
}

.slider-radius .tf-sw-slideshow .heading {
    margin-bottom: 38px;
}

.slider-radius .tf-sw-slideshow .subheading {
    font-size: 14px;
    line-height: 22.4px;
}

/*------------ button ---------------- */
.tf-btn {
    transition: all 0.3s ease;
    will-change: background-color, color, border;
    pointer-events: auto;
    overflow: hidden;
    font-size: 14px;
    line-height: 16px;
    font-weight: 500;
    box-sizing: border-box;
    padding: 14px 24px;
    display: inline-flex;
    border-radius: 3px;
    align-items: center;
    border: 1px solid transparent;
    background-color: transparent;
    cursor: pointer;
}

.tf-btn.hover-icon .icon {
    transition: all 0.3s ease;
    transform: scale(0);
    transform-origin: right;
    width: 0;
    display: inline-block;
    font-size: 9px;
}

.tf-btn.hover-icon:hover .icon {
    transform: scale(1);
    width: 10px;
    min-width: 10px;
    margin-inline-start: 8px;
}

.tf-btn span {
    z-index: 1;
    color: inherit;
}

.tf-btn.btn-primary {
    background-color: var(--primary);
    color: var(--white);
}


.tf-btn.style-3 {
    padding: 0 24px;
    line-height: 40px;
}



.btn-icon .icon {
    margin-inline-start: 8px;
    display: inline-block;
    font-size: 9px;
}

.btn-xl {
    padding: 0px 30px;
    font-size: 18px;
    line-height: 50px;
}

.btn-xl .icon {
    font-weight: 600;
    margin-inline-start: 12px;
    font-size: 12px;
}

.btn-md {
    padding: 0 30px;
    min-height: 46.8px;
}

.btn-sm {
    padding-left: 18px;
    padding-right: 18px;
}

.btn-fill {
    background-color: var(--main);
    border: 1px solid var(--main);
    color: var(--white);
}

.btn-outline {
    background-color: var(--white);
    border: 1px solid var(--main);
}


.btn-line {
    padding: 0;
    padding-bottom: 7px;
    color: var(--main);
    position: relative;
}

.btn-line .icon {
    margin-inline-start: 8px;
    display: inline-block;
    font-size: 8px;
}

.btn-line::after {
    position: absolute;
    content: "";
    left: 0;
    bottom: 0;
    right: 0;
    height: 1px;
    background-color: var(--main);
    transition: all 0.3s ease;
}

.btn-line:hover {
    color: var(--primary);
}

.btn-line:hover::after {
    background-color: var(--primary);
}


.btn-light {
    background-color: var(--white);
}

.btn-light .icon {
    color: var(--white);
}

.btn-light:hover {
    background-color: var(--main);
    color: var(--white);
}

.btn-light-icon {
    background-color: var(--white);
}

.animate-hover-btn {
    position: relative;
    overflow: hidden;
}

.animate-hover-btn:after {
    background-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.25), transparent);
    content: "";
    left: 150%;
    position: absolute;
    top: 0;
    bottom: 0;
    transform: skew(-20deg);
    width: 200%;
}

.animate-hover-btn.btn-primary:after,
.animate-hover-btn.btn-fill::after {
    background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
}

@keyframes shine {
    100% {
        left: -200%;
    }
}



.tf-btn-loading {
    position: relative;
    transition: all 0.3s ease;
}

.tf-btn-loading.loading {
    background-color: var(--main);
}

.tf-btn-loading.loading .icon,
.tf-btn-loading.loading i {
    display: none;
}

.tf-btn-loading.loading::before {
    border: solid 2px var(--white);
    opacity: 1;
    animation-play-state: running;
}

.tf-btn-loading::before {
    width: 18px;
    height: 18px;
    border: solid 2px transparent;
    border-top-color: transparent !important;
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    border-radius: 50%;
    animation: tf_rotator 0.6s linear infinite paused;
    opacity: 0;
}



@keyframes tf_rotator {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*------------ form ---------------- */

.tf-check {
    position: relative;
    background: transparent;
    cursor: pointer;
    outline: 0;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    min-width: 16px;
    border: 1px solid var(--line);
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.tf-check:checked {
    border-color: var(--primary);
    background-color: var(--primary);
}

.tf-check:checked::before {
    opacity: 1;
    transform: scale(1);
}

.tf-check::before {
    font-family: "icomoon";
    content: "\e911";
    position: absolute;
    color: var(--white);
    opacity: 0;
    font-size: 8px;
    transform: scale(0);
    transition: all 0.3s ease;
}


#recover:target ~ #login,
#recover {
    display: none;
}

#recover:target {
    display: block;
}


.badge {
    padding: 5px 10px;
    font-weight: 500;
    background-color: var(--primary);
    color: white;
    border-radius: 4px;
    font-size: 12px;
    min-width: 22px;
    min-height: 22px;
    text-transform: uppercase;
    text-align: center;
}

.tab-reviews .tab-reviews-heading {
    margin-bottom: 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 50px;
    flex-wrap: wrap;
}

.tab-reviews .tab-reviews-heading .top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-grow: 1;
    width: 100%;
    max-width: 597px;
    gap: 30px;
}

.tab-reviews .tab-reviews-heading .list-star {
    display: flex;
    gap: 2px;
    justify-content: center;
    margin-bottom: 7px;
    margin-top: 1px;
    font-size: 17px;
}

.tab-reviews .tab-reviews-heading .list-star .icon {
    color: var(--yellow);
}

.tab-reviews .rating-score {
    width: 100%;
    max-width: 365px;
}

.tab-reviews .rating-score .item {
    width: 100%;
    display: flex;
    align-items: center;
}

.tab-reviews .rating-score .item:not(:last-child) {
    margin-bottom: 4px;
}

.tab-reviews .rating-score .number-1 {
    width: 12px;
    text-align: end;
}

.tab-reviews .rating-score .icon {
    font-size: 15px;
    margin-left: 4px;
    color: var(--yellow);
}

.tab-reviews .rating-score .number-2 {
    width: 17px;
}

.tab-reviews .rating-score .line-bg {
    margin: 0 8px;
    width: 100%;
    height: 8px;
    background-color: var(--line);
}

.tab-reviews .rating-score .line-bg div {
    height: 100%;
    background-color: var(--yellow);
}

.write-cancel-review-wrap .write-review-wrap,
.write-cancel-review-wrap .btn-cancel-review {
    display: none;
}

.write-cancel-review-wrap.write-review .cancel-review-wrap,
.write-cancel-review-wrap.write-review .btn-write-review {
    display: none;
}

.write-cancel-review-wrap.write-review .write-review-wrap,
.write-cancel-review-wrap.write-review .btn-cancel-review {
    display: block;
}


.form-write-review .heading {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.form-write-review .heading .list-star {
    display: flex;
    gap: 8px;
}

.form-write-review .heading .list-star i {
    font-size: 32px;
    color: var(--line);
}

.form-write-review textarea {
    height: 100px;
}

.form-write-review .form-content {
    margin-bottom: 30px;
}

.form-write-review .form-content .box-field:not(:last-child) {
    margin-bottom: 30px;
}

.form-write-review .form-content .box-field .label {
    margin-bottom: 8px;
}



.form-write-review .form-content .box-check {
    display: flex;
    gap: 8px;
}

/* custom rating */
.list-rating-check {
    display: flex;
    flex-direction: row-reverse;
    justify-content: left;
    gap: 10px;
}

.list-rating-check:not(:checked) > input {
    position: absolute;
    opacity: 0;
}

.list-rating-check:not(:checked) > label {
    font-size: 30px;
    cursor: pointer;
    white-space: nowrap;
    width: 30px;
    color: var(--line);
}

.list-rating-check:not(:checked) > label:before {
    font-family: "icomoon";
    content: "\e95b";
}

.list-rating-check > input:checked ~ label {
    color: var(--yellow);
}

.list-rating-check:not(:checked) > label:hover,
.list-rating-check:not(:checked) > label:hover ~ label {
    color: var(--yellow);
}

.list-rating-check > input:checked + label:hover,
.list-rating-check > input:checked + label:hover ~ label,
.list-rating-check > input:checked ~ label:hover,
.list-rating-check > input:checked ~ label:hover ~ label,
.list-rating-check > label:hover ~ input:checked ~ label {
    color: var(--yellow);
}


/*------------ carousel ---------------- */

.sw-dots {
    display: flex;
    gap: 8px;
}

.sw-dots.swiper-pagination-bullets .swiper-pagination-bullet {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sw-dots .swiper-pagination-bullet {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    opacity: 1;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.sw-dots .swiper-pagination-bullet:before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background-color: var(--main);
    transition: 0.3s;
}

.sw-dots .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: rgba(0, 0, 0, 0.16);
}

.sw-dots.line-white-pagination span {
    background-color: rgb(255, 255, 255);
    opacity: 0.4;
    width: 6px;
    height: 6px;
}

.sw-dots.line-white-pagination span::before {
    content: none;
}

.sw-dots.line-white-pagination span.swiper-pagination-bullet-active {
    background-color: rgb(255, 255, 255);
    opacity: 1;
    width: 22px;
    border-radius: 9999px;
}


.sw-dots:not(.swiper-pagination-lock) {
    margin-top: 15px;
}

.sw-dots.medium span {
    width: 20px;
    height: 20px;
    border-width: 1px !important;
}

.sw-dots.medium span::before {
    width: 6px;
    height: 6px;
}

.sw-dots.medium span.swiper-pagination-bullet-active::before {
    width: 4px;
    height: 4px;
}

.sw-dots.small span {
    width: 16px;
    height: 16px;
    border-width: 1px !important;
}

.sw-dots.small span::before {
    width: 6px;
    height: 6px;
}

.sw-dots.small span.swiper-pagination-bullet-active::before {
    width: 4px;
    height: 4px;
}


.sw-dots.large .swiper-pagination-bullet::before {
    width: 8px;
    height: 8px;
}



.nav-sw {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: var(--main);
    border: 1px solid var(--main);
    background-color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    font-size: 12px;
    cursor: pointer;
}

.nav-sw.swiper-button-disabled {
    border-color: rgba(0, 0, 0, 0.14);
    color: rgba(0, 0, 0, 0.4);
}

.nav-sw:hover:not(.swiper-button-disabled) {
    background-color: var(--main);
    color: var(--white);
}

.nav-sw.lg {
    width: 46px;
    height: 46px;
    font-size: 12px;
}

.nav-sw.square {
    width: 30px;
    height: 30px;
    border-radius: 3px;
}

.nav-sw.round {
    border-radius: 999px;
}


.nav-sw.line-white {
    background-color: transparent;
    color: var(--white);
    border-color: var(--white);
}

.nav-sw.line-white:hover:not(.swiper-button-disabled) {
    color: var(--main);
    background-color: var(--white);
    border-color: var(--white);
}

.nav-sw.line-white.swiper-button-disabled {
    border-color: rgba(255, 255, 255, 0.4);
    color: rgba(255, 255, 255, 0.4);
}

.nav-sw.disable-line.swiper-button-disabled {
    border-color: transparent;
    background-color: rgba(255, 255, 255, 0.4);
    color: rgb(0, 0, 0);
}


.hover-sw-nav {
    position: relative;
}

.hover-sw-nav .nav-sw {
    z-index: 10;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.4s ease;
    cursor: pointer;
    visibility: hidden;
    background-color: var(--white);
    border-color: transparent;
}

.hover-sw-nav .nav-sw.nav-next-slider {
    margin-left: 20px;
    left: 13px;
}

.hover-sw-nav .nav-sw.nav-prev-slider {
    right: 13px;
    margin-right: 20px;
}

.hover-sw-nav .nav-sw.w_46 .icon {
    font-size: 12px;
}

.hover-sw-nav .nav-sw.swiper-button-disabled {
    background-color: rgba(0, 0, 0, 0.2);
}

.hover-sw-nav .nav-sw:hover:not(.swiper-button-disabled) {
    background-color: var(--main);
    color: var(--white);
}


.hover-sw-nav.hover-sw-2 .nav-sw {
    top: 37%;
}



.wrap-carousel {
    position: relative;
}

.wrap-carousel .nav-sw {
    z-index: 20;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.wrap-carousel .nav-next-slider {
    left: -84px;
}

.wrap-carousel .nav-prev-slider {
    right: -84px;
}

.wrap-carousel .sw-dots {
    display: none;
}


.swiper-button-disabled {
    cursor: auto !important;
}


.tf-sw-brand .sw-dots:not(.swiper-pagination-lock) {
    margin-top: 35px;
}


/*------------ pop up ---------------- */
.offcanvas {
    z-index: 3000;
    border: none !important;
}

.modal-backdrop {
    background-color: var(--backdrop);
}

.modal-backdrop.show {
    opacity: 1;
}

.modal.show .modal-dialog {
    transform: none;
    transition: transform 0.3s ease-out !important;
}


.modal .modal-content {
    cursor: default !important;
}

.modal.fade:not(.show) {
    opacity: 0;
}



#ask_question fieldset {
    margin-bottom: 15px;
}

#ask_question fieldset label {
    margin-bottom: 5px;
    font-weight: 400;
    color: var(--text);
}

#ask_question fieldset input {
    height: 50px;
}

#ask_question textarea {
    height: 176px;
}



.canvas-wrapper {
    padding: 0;
    isolation: isolate;
    height: 100%;
    width: 100%;
    max-height: none;
    display: grid;
    grid-auto-rows: auto minmax(0, 1fr) auto;
    align-content: start;
}

.canvas-body {
    background-color: var(--white);
    padding: 15px 20px;
    overscroll-behavior-y: contain;
    overflow-y: auto;
}

.canvas-body::-webkit-scrollbar {
    width: 5px;
}

.canvas-body::-webkit-scrollbar-track {
    background-color: var(--bg-scrollbar-track);
}

.canvas-body::-webkit-scrollbar-thumb {
    background: var(--bg-scrollbar-thumb);
    border-radius: 4px;
}

.canvas-filter {
    max-width: 300px;
    width: 100%;
}

.canvas-filter .filter-icon {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    gap: 10px;
    color: var(--main);
    text-transform: uppercase;
    line-height: 22px;
    font-size: 12px;
    font-weight: 600;
}

.canvas-filter .canvas-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    background-color: var(--bg-11);
}

.canvas-filter .canvas-header .icon-close-popup {
    font-size: 16px;
}

.canvas-filter .widget-facet:last-child {
    margin-bottom: 0;
}

.canvas-sidebar .canvas-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0px 15px;
    background-color: var(--bg-11);
    min-height: 40px;
}

.canvas-sidebar .canvas-header .icon-close-popup {
    font-size: 16px;
}

.canvas-sidebar .canvas-header .title {
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
}

.canvas-sidebar .canvas-body {
    padding: 15px;
}


.canvas-search {
    width: 100% !important;
    max-width: 463px;
    padding-top: 55px;
    border: 0 !important;
}


/*------------ box icon ---------------- */
.box-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease;
    cursor: pointer;
}


.box-icon.w_46 {
    width: 46px;
    height: 46px;
}

.box-icon.w_50 {
    width: 50px;
    height: 50px;
}

.box-icon.round {
    border-radius: 50% !important;
}

.tf-social-icon {
    --facebook-cl: rgb(59, 89, 152);
    --twitter-cl: rgb(85, 85, 85);
    --instagram-cl: linear-gradient(#8a3ab9, #e95950, #fccc63);
    --threads-cl: rgb(224, 53, 102);
    --youtube-cl: rgb(205, 32, 31);
    --tiktok-cl: linear-gradient(#25f4ee, #000, #fe2c55);
    --tiktok-cl2: rgb(254, 44, 85);
    --pinterest-cl: rgb(203, 32, 39);
    --tumblr-cl: rgb(55, 69, 92);
    --vimeo-cl: rgb(26, 183, 234);
    --snapchat-cl: rgb(255, 221, 0);
    --whatsapp-cl: rgb(0, 230, 118);
    --linked_in-cl: rgb(23, 106, 255);
    --wechat-cl: rgb(26, 173, 24);
    --reddit-cl: rgb(255, 69, 0);
    --line-cl: rgb(0, 195, 77);
    --spotify-cl: rgb(30, 125, 96);
}

.tf-social-icon.style-default li a {
    border: 0 !important;
}


.tf-icon-box .icon {
    margin-bottom: 34px;
}

.tf-icon-box .icon i {
    font-size: 30px;
    color: #c5c5c5;
}

.tf-icon-box .content .title {
    font-size: 18px;
    font-weight: 500;
    line-height: 22px;
    margin-bottom: 10px;
}


.swiper-slide .tf-icon-box {
    width: 100%;
    height: 100%;
}

/*------------ hover ---------------- */
.hover-img .img-style {
    overflow: hidden;
}

.hover-img .img-style img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.5s cubic-bezier(0, 0, 0.44, 1.18);
}

.hover-img:hover img {
    transform: scale(1.06);
}


/*------------ collection ---------------- */
.collection-item .collection-inner {
    position: relative;
}

.collection-item .collection-image {
    width: 100%;
    display: block;
    border-radius: 10px;
    overflow: hidden;
}

.collection-item .collection-content {
    position: absolute;
    z-index: 3;
    bottom: 15px;
    left: 15px;
    right: 15px;
    text-align: center;
}

.collection-item .collection-title {
    line-height: 40px;
    height: 40px;
    font-size: 16px;
    padding: 0px 14px;
    background-color: var(--white);
    border-radius: 3px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.collection-item .collection-title .icon {
    color: var(--white);
    margin: 0;
}

.collection-item .collection-title:hover {
    background-color: var(--main);
    color: var(--white);
}


.collection-item-v4 .collection-inner {
    position: relative;
}

.collection-item-v4 .collection-image {
    display: block;
}

.collection-item-v4 .collection-content {
    text-align: center;
    bottom: 7%;
    position: absolute;
    left: 7%;
    right: 7%;
}

.collection-item-v4 .collection-content .heading {
    font-size: 18px;
    line-height: 21.6px;
    text-transform: capitalize;
}

.collection-item-v4 .collection-content .subheading {
    font-size: 14px;
    line-height: 22.4px;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.collection-item-v4 .collection-content .tf-btn {
    margin-top: 14px;
}


.collection-item-v4.style-3 .collection-content {
    text-align: left;
}

.collection-item-circle {
    position: relative;
}

.collection-item-circle .collection-image {
    border-radius: 50%;
    overflow: hidden;
    display: block;
}

.collection-item-circle .collection-content {
    margin-top: 15px;
}

.collection-item-circle .collection-content .title {
    margin-bottom: 5px;
    font-size: 15px;
    line-height: 18px;
    font-weight: 500;
}

.collection-item-circle .collection-content .count {
    color: var(--text);
}

.collection-item-circle .sale-off {
    position: absolute;
    top: 0;
    left: 0;
    font-size: 10px;
    line-height: 19px;
    padding: 0 5px;
    background-color: var(--main);
    border-radius: 999px;
    color: var(--white);
}

.collection-item-circle.has-bg {
    padding: 15px 0;
    background-color: var(--bg-2);
    border-radius: 20px;
}

.collection-item-circle.has-bg .collection-image {
    max-width: 60%;
    margin-left: auto;
    margin-right: auto;
}

.collection-item-circle.has-bg .collection-content {
    margin-top: 19px;
}

.collection-item-circle.has-bg .collection-content .title {
    margin-bottom: 0;
}

.collection-item-circle.has-bg-2 {
    background-color: #f2f2f2;
    border-radius: 3px;
}

.collection-item-circle.circle-line .collection-image {
    padding: 15px;
    border: 1px solid var(--primary);
}

.collection-item-circle.circle-line .collection-content {
    margin-top: 20px;
}

.collection-item-circle.circle-line .collection-content .title {
    margin: 0;
}


.tf-sw-collection .swiper-slide {
    height: auto;
}

.tf-sw-collection .swiper-slide img {
    height: 100%;
}

.tf-banner-collection {
    position: relative;
}

.tf-banner-collection img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
}

.tf-banner-collection .box-content {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.tf-banner-collection .box-content .sub {
    line-height: 17px;
}

.tf-banner-collection .box-content .heading {
    font-size: 42px;
    line-height: 50px;
    margin-top: 5px;
}

.tf-banner-collection .box-content p {
    font-size: 20px;
    line-height: 32px;
    margin-top: 15px;
    margin-bottom: 26px;
}


.swiper-slide .collection-item-v4,
.swiper-slide .collection-item-v4 .collection-inner,
.swiper-slide .collection-item-v4 .collection-image {
    height: 100%;
}


/*------------ product ---------------- */

.thumbs-slider {
    display: flex;
    gap: 10px;
}

.tf-product-media-thumbs {
    width: calc(14% - 10px);
    max-height: 846px;
}

.tf-product-media-thumbs .swiper-slide {
    height: max-content;
}

.tf-product-media-thumbs .swiper-slide .item {
    position: relative;
    height: 100%;
}

.tf-product-media-thumbs .swiper-slide .item img {
    border-radius: 5px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tf-product-media-thumbs .swiper-slide .item::after {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    border: 2px solid transparent;
    transition: all 0.3s ease;
    border-radius: 5px;
}

.tf-product-media-thumbs .swiper-slide.swiper-slide-thumb-active .item::after {
    border: 2px solid var(--main);
}

.thumbs-bottom .thumbs-slider {
    flex-direction: column;
}

.thumbs-bottom .thumbs-slider .tf-product-media-thumbs {
    order: 1;
    width: 100%;
}

.thumbs-bottom .thumbs-slider .tf-product-media-thumbs .swiper-slide {
    width: 119px;
}

.thumbs-bottom .thumbs-slider .tf-product-media-main {
    width: 100%;
}


.tf-product-media-main {
    width: 86%;
    border-radius: 10px;
}


.tf-product-media-main .item {
  width: 100%;
  height: 100%;
  max-height: 846px;
  aspect-ratio: 1 / 1;
  background-color: #eee; /* 占位背景 */
}


.tf-product-media-main .item img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1; /* 或者设置固定高度 */
  background-color: #f0f0f0; /* 占位背景色 */
  object-fit: cover;
}


.tf-product-info-title {
    margin-bottom: 20px !important;
}


.tf-product-info-variant-picker {
    display: flex;
    gap: 20px;
    flex-direction: column;
}


.tf-product-info-quantity .quantity-title {
    margin-bottom: 5px;
}

.tf-product-info-buy-button form {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}



.tf-product-info-extra-link {
    display: flex;
    align-items: center;
    gap: 10px 30px;
    flex-wrap: wrap;
}

.tf-product-info-extra-link .tf-product-extra-icon {
    display: flex;
    gap: 8px;
    align-items: center;
}

.tf-product-info-extra-link .tf-product-extra-icon i {
    font-size: 18px;
}

.tf-product-info-extra-link .tf-product-extra-icon:hover {
    color: var(--primary);
}

.tf-product-delivery {
    padding: 30px 28px;
    text-align: center;
    display: flex;
    gap: 16px;
    flex-direction: column;
    border-radius: 2.5px;
    border: 1px solid var(--line);
}

.tf-product-delivery i {
    font-size: 29px;
}



.variant-picker-item .variant-picker-label {
    margin-bottom: 15px;
}

.variant-picker-item .variant-picker-values {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.variant-picker-item .variant-picker-values input {
    position: absolute !important;
    overflow: hidden;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    word-wrap: normal !important;
}

.variant-picker-item .variant-picker-values input:checked + label:not(.color-btn) {
    border-color: var(--main);
    box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.1019607843);
}

.variant-picker-item .variant-picker-values input:checked + label.style-text:not(.color-btn) {
    background-color: var(--main);
}

.variant-picker-item .variant-picker-values input:checked + label.style-text:not(.color-btn) p {
    color: var(--white);
}

.variant-picker-item .variant-picker-values label {
    position: relative;
    width: 36px;
    height: 36px;
    text-align: center;
    padding: 5px;
    border: 1px solid transparent;
    cursor: pointer;
    font-weight: 400;
    line-height: 22.4px;
    transition: all 0.3s ease;
}

.variant-picker-item .variant-picker-values label:hover {
    border-color: var(--main);
}


.variant-picker-item .variant-picker-values label.style-text {
    min-width: 45px;
    height: 38px;
    width: max-content;
    border: 1px solid rgba(134, 134, 134, 0.12);
    border-radius: 3px;
    padding: 7px 15px;
}

.variant-picker-item .variant-picker-values label.style-text:hover {
    border-color: var(--main);
}



.variant-picker-item .variant-picker-values label .tooltip {
    left: 50%;
    transform: translateX(-50%);
}

.variant-picker-item .variant-picker-values label.rectangle-color {
    display: flex;
    align-items: center;
    gap: 4px;
}

.variant-picker-item .variant-picker-values label.rectangle-color > span {
    width: 15px;
    height: 15px;
}

.variant-picker-item .color-btn.active {
    border-color: var(--main) !important;
    box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.1019607843);
}

.variant-picker-item .color-btn.style-text.active {
    background-color: var(--main);
    border-color: var(--main);
}

.variant-picker-item .color-btn.style-text.active p {
    color: var(--white);
}



.tf-progress-bar {
    height: 4px;
    width: 100%;
    background-color: var(--line);
    position: relative;
}

.tf-progress-bar span {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    bottom: 0;
    background-color: var(--primary);
    border-radius: 3px;
}

.tf-progress-bar .progress-car {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 26px;
    color: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 2.5px;
    background-color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
}


.wrap-btn-viewer {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

.wrap-btn-viewer i {
    font-size: 20px;
}

.wrap-btn-viewer.style-video .icon {
    width: 20px;
    height: 20px;
    padding-left: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--white);
    border: 2px solid var(--main);
    border-radius: 50%;
}

.wrap-btn-viewer.style-video .icon i {
    font-size: 8px;
}

.btn-icon-action > *:last-child {
    display: none;
}

.btn-icon-action.active > *:first-child {
    display: none;
}

.btn-icon-action.active > *:last-child {
    display: block;
}

.wg-quantity {
    width: 127px;
    display: flex;
    justify-content: space-between;
    background-color: rgb(242, 242, 242);
    border-radius: 3px;
    overflow: hidden;
}

.wg-quantity input {
    width: 51px;
    height: 46px;
    padding: 0;
    background-color: transparent;
    border: 0;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    line-height: 26px;
    color: var(--main);
}

.wg-quantity .btn-quantity {
    width: 38px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--main);
    cursor: pointer;
    transition: all 0.3s ease;
}

.wg-quantity .btn-quantity:hover {
    color: var(--primary);
}

.wg-quantity.small {
    width: 109px;
    height: 30px;
}

.wg-quantity.small .btn-quantity {
    width: 27px;
    height: 30px;
    font-size: 20px;
}

.wg-quantity.small input {
    width: 30px;
    height: 30px;
    font-size: 12px;
    line-height: 30px;
}


.tf-pr-attrs {
    border-spacing: 0;
    border-collapse: collapse;
    width: 100%;
    border-radius: 5px;
    border-style: hidden;
    box-shadow: 0 0 0 0.1rem var(--line);
    color: var(--text-2);
}

.tf-pr-attrs tr {
    border: 1px solid var(--line);
    vertical-align: middle;
}

.tf-pr-attrs tr th {
    padding: 10px;
    border-right: 1px solid var(--line);
    font-weight: 700;
}

.tf-pr-attrs tr td {
    padding: 10px;
}

.card-product {
    transition: all 0.3s ease;
    text-align: start;
}

.card-product .product-img {
    display: flex;
    width: 100%;
    height: 100%;
    position: relative;
    align-items: stretch;
}

.card-product .card-product-wrapper {
    position: relative;
    overflow: hidden;
    z-index: 20;
    aspect-ratio: 1/1.4;
}


.card-product .card-product-wrapper img {
    display: block;
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
    transition: opacity 0.5s ease, transform 2s cubic-bezier(0, 0, 0.44, 1.18);
}

.card-product .card-product-wrapper .img-hover {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.card-product .card-product-wrapper:hover .product-img .img-product {
    opacity: 0;
}

.card-product .card-product-wrapper:hover .product-img .img-hover {
    display: block;
    z-index: 1;
    opacity: 1;
    transform: scale(1.09);
}


.card-product .card-product-wrapper .list-product-btn {
    z-index: 10;
    position: absolute;
    bottom: 48px;
    left: 15px;
    right: 15px;
}

.card-product .card-product-wrapper .on-sale-wrap {
    position: absolute;
    top: 5px;
    right: 5px;
    left: 5px;
    z-index: 5;
}

.card-product .card-product-wrapper .on-sale-wrap .on-sale-item {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    word-break: break-word;
    padding: 0 6px;
    min-width: 40px;
    text-transform: capitalize;
    font-size: 12px;
    font-weight: 500;
    text-align: center;
    line-height: 22px;
    position: relative;
    background-color: #fc5732;
    color: var(--white);
    border-radius: 999px;
}

.card-product .card-product-wrapper .on-sale-wrap .new {
    background-color: #ff3232;
}

.card-product .card-product-wrapper .on-sale-wrap .best-seller {
    background-color: #44ad55;
}

.card-product .card-product-wrapper .on-sale-wrap .recommend {
    background-color: #bea36e;
}

.card-product .card-product-wrapper .on-sale-wrap .pre-order {
    background-color: #55a653;
    color: var(--white);
}

.card-product .card-product-info {
    padding-top: 10px;
    gap: 8px;
    display: grid;
}

.card-product .card-product-info .title {
    font-size: 16px;
    line-height: 19.2px;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
}

.card-product .card-product-info .price {
    font-size: 14px;
    line-height: 14px;
    font-weight: 600;
}

.card-product .card-product-info .old-price {
    text-decoration: line-through;
    display: inline-block;
    margin-right: 5px;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.5);
}

.card-product .card-product-info .new-price {
    color: var(--red_1);
}



.card-product .description {
    display: none;
    font-size: 14px;
    line-height: 22.4px;
    margin-top: 2px;
}



.card-product.lg .card-product-info {
    margin: auto;
    max-width: 277px;
}


.tooltip {
    z-index: 202;
    opacity: 0;
    visibility: hidden;
    display: block;
    position: absolute;
    top: 100%;
    margin-top: 8px;
    border-radius: 2px;
    white-space: nowrap;
    background-color: var(--main);
    color: var(--white);
    font-weight: 400;
    font-size: 12px;
    line-height: 12px;
    padding: 7px 10px 9px;
    max-width: 250px;
    width: max-content;
    transition: transform 0.4s ease 0.2s, opacity 0.4s ease 0.2s;
}

.tooltip::before {
    content: "";
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    top: -4px;
    position: absolute;
    background: var(--main);
    width: 8px;
    height: 8px;
    z-index: 100;
}

.hover-tooltip {
    position: relative;
}

.hover-tooltip:hover .tooltip {
    opacity: 0.9;
    visibility: visible;
}

.hover-tooltip.center .tooltip {
    left: 50%;
    transform: translateX(-50%);
}

.list-product-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.list-product-btn .box-icon {
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 3px;
    box-shadow: 0 8px 24px rgba(149, 157, 165, 0.2);
    background-color: rgb(242, 242, 242);
    position: relative;
}

.list-product-btn .box-icon .icon {
    font-size: 14px;
    font-weight: 500;
    height: 13px;
}

.list-product-btn .box-icon .text {
    font-size: 12px;
    font-weight: 700;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: auto;
    line-height: 32px;
}

.list-product-btn .box-icon .tooltip {
    top: -100%;
    margin-top: 5px;
}

.list-product-btn .box-icon .tooltip::before {
    top: unset;
    bottom: -4px;
}



.list-product-btn .box-icon.style-3 {
    box-shadow: none;
    background-color: var(--white);
    border: 1px solid var(--line-2);
}

.list-product-btn .box-icon:hover {
    background-color: var(--main) !important;
    color: var(--white);
}

.list-product-btn .box-icon:hover .tooltip {
    opacity: 0.9;
    visibility: visible;
}


.list-product-btn.style-black .box-icon {
    background-color: var(--main) !important;
    color: var(--white);
}

.list-product-btn.style-black .box-icon:hover {
    background-color: var(--white) !important;
    color: var(--main);
}

.tf-sticky-btn-atc {
    position: fixed;
    width: 100%;
    bottom: 0;
    z-index: 70;
    box-shadow: 4px -4px 5px rgba(0, 0, 0, 0.03);
    background-color: var(--white);
    transition: all 0.3s linear;
    transform: translateY(100%);
}

.tf-sticky-btn-atc .tf-height-observer {
    padding: 10px 0;
    column-gap: 5px;
}

.tf-sticky-btn-atc .tf-sticky-atc-product {
    flex: 1 0 0%;
    gap: 15px;
}

.tf-sticky-btn-atc .tf-sticky-atc-img {
    width: 65px;
    height: 65px;
    flex-shrink: 0;
}

.tf-sticky-btn-atc .tf-sticky-atc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.tf-sticky-btn-atc .tf-sticky-atc-title {
    font-size: 16px;
    line-height: 19px;
}

.tf-sticky-btn-atc .tf-sticky-atc-btns,
.tf-sticky-btn-atc .tf-sticky-atc-infos form {
    display: flex;
    gap: 12px;
    align-items: center;
}

.tf-sticky-btn-atc .tf-btn {

}

.tf-sticky-btn-atc.show {
    transform: translateY(0);
}


.select-currentColor,
.value-currentColor {
    text-transform: capitalize;
}


.tf-page-title {
    padding: 69px 0 65px;
    background-image: url(../images/shop/file/page-title-blog.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.tf-page-title .heading {
    font-size: 42px;
    font-weight: 400;
    line-height: 50px;
}


/*------------ testimonial ---------------- */

.rating {
    display: flex;
    align-items: center;
    gap: 7px;
}

.rating i {
    font-size: 16px;
    color: var(--bg-5);
}


/*------------ zoom ---------------- */
.tf-zoom-main {
    position: sticky;
    top: 30px;
    z-index: 50;
}

.section-image-zoom .other-image-zoom {
    transition: all 0.3s ease;
}

.section-image-zoom.zoom-active .other-image-zoom {
    opacity: 0.3;
}


.tf-model-viewer {
    width: 100%;
    height: 100%;
    position: relative;
}

.tf-model-viewer model-viewer {
    display: block;
    position: relative;
    z-index: 5;
    width: 100%;
    height: 100%;
}

.tf-model-viewer model-viewer.disabled {
    pointer-events: none;
}

.tf-model-viewer.active model-viewer {
    pointer-events: all;
}

.tf-model-viewer.active .wrap-btn-viewer {
    display: none;
}


/*------------ shop ---------------- */

.widget-facet {
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.widget-facet .facet-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    font-size: 16px;
    line-height: 24px;
    cursor: pointer;
}

.widget-facet .facet-title .icon {
    transition: transform 0.35s linear;
    font-size: 8px;
}

.widget-facet .facet-title.collapsed .icon {
    transform: rotate(180deg);
}

.widget-facet.wd-categories {
    border-bottom: 1px solid var(--line);
}

.widget-facet:not(:last-child) {
    border-bottom: 1px solid var(--line);
}

.widget-facet .cate-item a {
    display: flex;
    color: var(--main);
    transition: color 0.3s ease;
}

.widget-facet.wd-categories .cate-item a:hover {
    color: var(--primary);
}

.widget-facet .cate-item.current a {
    color: var(--primary);
}

.widget-facet .cate-item:not(:first-child) {
    margin-top: 10px;
}

.widget-facet .list-item .label {
    display: flex;
    color: var(--main);
    font-size: 14px;
    line-height: 22.4px;
    font-weight: 500;
}

.widget-facet .list-item:not(:first-child) {
    margin-top: 10px;
}

.widget-facet .current-scrollbar {
    overflow-y: auto;
    margin-right: 5px;
}

.widget-facet .current-scrollbar::-webkit-scrollbar {
    width: 2px;
}

.widget-facet .current-scrollbar::-webkit-scrollbar-track {
    background-color: rgba(0, 0, 0, 0.15);
}

.widget-facet .current-scrollbar::-webkit-scrollbar-thumb {
    background: var(--main);
}

.widget-featured-products {
    display: grid;
    gap: 15px;
}

.widget-featured-products .featured-product-item {
    display: flex;
    gap: 15px;
}

.widget-featured-products .featured-product-item .card-product-wrapper {
    width: 92px;
    min-width: 92px;
    border-radius: 10px;
    overflow: hidden;
}

.widget-featured-products .featured-product-item .card-product-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.widget-featured-products .featured-product-item .card-product-info .title {
    font-size: 16px;
    line-height: 19.2px;
    margin-bottom: 1px;
}

.widget-featured-products .featured-product-item .card-product-info .price {
    font-size: 14px;
    font-weight: 600;
    line-height: 14px;
}

.widget-iconbox-list {
    display: grid;
    gap: 18px;
}

.widget-iconbox-list .iconbox-item {
    display: flex;
    align-items: center;
    gap: 18px;
}

.widget-iconbox-list .iconbox-item .box-icon {
    border: 1px solid var(--line);
}

.widget-iconbox-list .iconbox-item .iconbox-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.widget-iconbox-list .iconbox-item .iconbox-content .iconbox-title {
    font-size: 16px;
    line-height: 19.2px;
    font-weight: 600;
}

.widget-iconbox-list .iconbox-item .iconbox-content .iconbox-desc {
    color: var(--text-3);
}

.widget-price {
    margin-top: 24px;
    margin-bottom: 35px;
}

.widget-price .box-title-price {
    margin-top: 30px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.widget-price .caption-price {
    display: flex;
    align-items: center;
    gap: 10px;
}

.widget-price .caption-price .price-val {
    width: 68px;
    display: flex;
    justify-content: flex-end;
    position: relative;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 5px;
}

.widget-price .caption-price .price-val::after {
    content: attr(data-currency);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 10px;
    font-weight: 400;
}

.sidebar-filter {
    background-color: var(--white);
    transition: all 0.3s ease;
}

.overlay-filter {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2000;
    width: 100vw;
    height: 100vh;
    background-color: var(--backdrop);
    visibility: hidden;
    opacity: 0;
}

.overlay-filter.show {
    opacity: 1;
    visibility: visible;
}

/*------------ sections ---------------- */
.btn-sidebar-mobile {
    display: none;
    position: fixed;
    top: 30%;
    right: 0;
    z-index: 100;
    width: max-content;
}

.btn-sidebar-mobile button {
    width: 40px;
    height: 48px;
    display: flex;
    border: 0;
    justify-content: center;
    align-items: center;
    background-color: var(--white);
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 6px 0px;
}

.btn-sidebar-mobile button i {
    font-size: 17px;
    color: var(--main);
}

.btn-sidebar-mobile button.type-hover {
    padding: 0 11.5px;
}

.btn-sidebar-mobile button.type-hover span {
    display: none;
}

.btn-sidebar-mobile button.type-hover:hover {
    width: max-content;
    padding-right: 24px;
    gap: 11.5px;
}

.btn-sidebar-mobile button.type-hover:hover span {
    display: block;
}

.btn-sidebar-mobile.left {
    right: auto;
    left: 0;
}


.tf-marquee {
    padding-top: 24px;
    padding-bottom: 24px;
    overflow: hidden;
}

.tf-marquee .wrap-marquee {
    display: flex;
    animation: slide-har 6s linear infinite;
    transition: animation-duration 300ms;
}

.tf-marquee .wrap-marquee:hover {
    animation-play-state: paused;
}

.tf-marquee .marquee-item {
    padding-left: 18px;
    padding-right: 18px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.tf-marquee .marquee-item .text {
    font-size: 18px;
    line-height: 21.6px;
    white-space: nowrap;
}

.tf-marquee .marquee-item p {
    white-space: nowrap;
}

.tf-marquee.not-hover .wrap-marquee:hover {
    animation-play-state: running;
}


.tf-marquee.marquee-white .marquee-item svg path {
    fill: var(--white);
}



.flat-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    margin-bottom: 30px;
    padding-left: 15px;
    padding-right: 15px;
}

.flat-title .title {
    font-size: 22px;
    line-height: 26.4px;
}


.flat-title .sw-dots {
    margin-top: 0;
}



.tf-sw-brand {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--line);
}

.tf-sw-brand .swiper-slide:not(:last-child) .brand-item {
    border-right: 1px solid var(--line);
}

.brand-item {
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}



.wrap-sw-over {
    padding-bottom: 40px;
    margin-bottom: -40px;
    padding-left: 30px;
    margin-left: -30px;
}



.tf-breadcrumb-wrap {
    padding: 22.5px 0;
    gap: 15px;
}

.tf-breadcrumb-wrap .tf-breadcrumb-list {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

.tf-breadcrumb-wrap .tf-breadcrumb-list .icon {
    font-size: 8px;
    font-weight: 700;
}

.tf-breadcrumb-wrap .tf-breadcrumb-list span {
    color: var(--text);
}


.tf-table-page-cart {
    border-spacing: 0;
    border-collapse: collapse;
    margin-bottom: 30px;
    width: 100%;
    line-height: 1.4;
}

.tf-table-page-cart th {
    font-size: 16px;
    font-weight: 600;
    border-bottom: 1px solid var(--line);
    color: var(--main);
    text-align: center;
    padding: 18px 0px;
}

.tf-table-page-cart th:first-child {
    text-align: start;
}

.tf-table-page-cart th:last-child {
    text-align: end;
}

.tf-table-page-cart tr {
    border-bottom: 1px dashed var(--line);
}

.tf-table-page-cart tr:last-child {
    border-bottom-style: solid;
}

.tf-table-page-cart td {
    padding: 18px 10px;
}

.tf-table-page-cart td:first-child {
    text-align: start;
    padding-left: 0;
}

.tf-table-page-cart td:last-child {
    text-align: end;
    padding-right: 0;
}

.tf-cart-item .tf-cart-item_product {
    display: flex;
}

.tf-cart-item .tf-cart-item_product .cart-info .cart-title {
    display: block;
}

.tf-cart-item .tf-cart-item_product .cart-info .cart-meta-variant {
    display: block;
    margin-top: 6px;
    color: var(--text);
}



.tf-cart-item .tf-cart-item_product .img-box {
    width: 80px;
    max-height: 110px;
    margin-right: 24px;
    border-radius: 2.5px;
    overflow: hidden;
}

.tf-cart-item .cart-quantity,
.tf-cart-item .cart-total,
.tf-cart-item .cart-price {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: self-end;
    justify-content: safe center;
    gap: 10px;
    line-height: 1;
}

.tf-cart-item .cart-total {
    justify-content: flex-end;
    font-weight: 600;
}

.tf-cart-item .wg-quantity {
    min-width: 86px;
    width: 86px;
    height: 30px;
}

.tf-cart-item .wg-quantity .btn-quantity {
    width: 25px;
    height: 30px;
    line-height: 25px;
}

.tf-cart-item .wg-quantity input {
    width: 30px;
    height: 30px;
    font-weight: 500;
    line-height: 16.8px;
}

.tf-page-cart-footer .tf-free-shipping-bar {
    margin-bottom: 20px;
    padding: 30px;
    border: 1px dashed var(--line);
    border-radius: 2.5px;
}

.tf-page-cart-footer .tf-free-shipping-bar .tf-progress-msg {
    margin-top: 28px;
}

.tf-page-cart-checkout {
    padding: 30px;
    background-color: var(--bg-11);
    border-radius: 2.5px;
}


.tf-page-cart-checkout .cart-checkbox {
    margin-top: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.tf-page-cart-checkout .cart-checkbox .tf-check {
    width: 16px;
    height: 16px;
    border-color: var(--line);
    background-color: var(--white);
    border-radius: 999px;
    overflow: hidden;
}

.tf-page-cart-checkout .cart-checkbox .tf-check:checked {
    border-color: var(--primary);
    background-color: var(--primary);
}

.tf-page-cart-checkout .cart-checkbox .tf-check::before {
    font-size: 6px;
}

.tf-page-cart-checkout .cart-checkbox a {
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}

.tf-page-cart-checkout .tf-cart-totals-discounts {
    margin-top: 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tf-page-cart-checkout .tf-cart-totals-discounts h3 {
    font-size: 20px;
    line-height: 24px;
}

.tf-page-cart-checkout .tf-cart-totals-discounts .total-value {
    font-size: 20px;
    line-height: 24px;
    font-weight: 600;
}


.tf-page-cart-checkout .cart-checkout-btn {
    margin-top: 18px;
}

.tf-page-cart-checkout .cart-checkout-btn .tf-btn {
    font-weight: 400;
}

.tf-page-cart-checkout .tf-page-cart_imgtrust {
    margin-top: 18px;
}

.tf-page-cart-checkout .tf-page-cart_imgtrust p {
    margin-bottom: 10px;
}

.tf-page-cart-checkout .tf-page-cart_imgtrust .cart-list-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}


#subscribe-msg {
    color: var(--bs-success);
}

.widget-wrap-checkout {
    display: grid;
    gap: 20px;
    background-color: #fbfbfc;
    border: 10px;
}

.widget-wrap-checkout .coupon-box {
    display: flex;
    gap: 10px;
}

.widget-wrap-checkout .coupon-box .tf-btn {
    flex-shrink: 0;
}


.my-account-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: sticky;
    top: 0;
}

.my-account-nav .my-account-nav-item {
    display: flex;
    width: 100%;
    border-bottom: 1px solid var(--line);
    padding: 15px 20px;
    border-radius: 3px;
    font-size: 16px;
    font-weight: 500;
    line-height: 20px;
    position: relative;
}

.my-account-nav .my-account-nav-item::before {
    position: absolute;
    content: "";
    bottom: 0;
    left: auto;
    right: 0;
    width: 0;
    height: 1px;
    background-color: #db1215;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.my-account-nav .my-account-nav-item:hover, .my-account-nav .my-account-nav-item.active {
  color: var(--primary);
  font-weight: bold;
}



@media (min-width: 576px) {
    .card-product .description {
        display: block;
    }


    .list-product-btn .box-icon {
        width: 36px;
        height: 36px;
    }
}

@media (min-width: 768px) {

    .text-lg {
        font-size: 18px !important;
        line-height: 21.6px !important;
    }

    .text-md-start {
        text-align: start !important;
    }

    .collection-item-circle.circle-line .collection-image {
        padding: 17px;
    }

    .pagination-wrap-spacing {
        margin-top: 76px;
    }

    .tf-breadcrumb-wrap {
        padding: 25.5px 0;
    }

    .tf-breadcrumb-wrap .tf-breadcrumb-list .icon {
        margin: 0 10px;
    }


    .canvas-mb {
        width: 100% !important;
        max-width: 367px;
    }

    .container-full,
    .container {
        padding-left: 30px;
        padding-right: 30px;
    }

    .hover-sw-nav .sw-dots {
        margin-top: 30px;
    }

    .card-product .card-product-info {
        padding-top: 15px;
        gap: 10px;
    }



    .card-product .card-product-wrapper .list-product-btn {
        bottom: 40px;
    }


    .card-product .card-product-wrapper .on-sale-wrap {
        top: 10px;
        left: 10px;
        right: 10px;
    }

    .card-product .card-product-wrapper .on-sale-wrap .on-sale-item {
        padding: 0 10px;
        min-width: 59px;
        font-size: 14px;
        line-height: 29px;
    }

    .canvas-filter {
        max-width: 410px;
    }

    .canvas-filter .canvas-body {
        padding: 32px 36px;
    }

    .widget-facet .facet-title {
        font-size: 20px;
        line-height: 30px;
    }

    .featured-product-item .card-product-info {
        gap: 10px;
    }

    .canvas-sidebar .canvas-header {
        padding: 0 20px;
    }

    .canvas-sidebar .canvas-body {
        padding: 30px;
    }

    .collection-item .collection-title {
        line-height: 42px;
        height: 42px;
        padding: 0 20px;
    }

    .collection-item .collection-content {
        bottom: 30px;
    }

    .collection-item-v4 .collection-content .tf-btn {
        margin-top: 22px;
    }

    .collection-item-v4 .collection-content .subheading {
        margin-bottom: 8px;
    }

    .collection-item-v4 .collection-content .heading {
        font-size: 20px;
        line-height: 24px;
    }

    .collection-item-circle .collection-content {
        margin-top: 30px;
    }

    .collection-item-circle .collection-content .title {
        font-size: 18px;
        line-height: 21.6px;
    }

    .tf-marquee {
        padding-top: 26px;
        padding-bottom: 26px;
    }

    .tf-marquee .wrap-marquee {
        animation: slide-har 10s linear infinite;
    }

    .tf-marquee .marquee-item .text {
        font-size: 24px;
        line-height: 28.8px;
    }


    .flat-title {
        margin-bottom: 50px;
    }

    .flat-title .title {
        font-size: 32px;
        line-height: 38.4px;
    }

    .wrap-iconbox.lg .tf-icon-box {
        max-width: 450px;
        margin: auto;
        width: 100%;
    }



    .flat-price .wrap-price {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 30px;
    }

    .canvas-mb .mb-canvas-content {
        min-width: 367px;
    }

    .box-nav-pagination {
        padding: 12px;
        min-width: 94px;
    }

}

@media (min-width: 992px) {
   
    .tf-slideshow .wrap-pagination {
        bottom: 40px;
    }

    .list-product-btn .box-icon {
        width: 40px;
        height: 40px;
    }

}

@media (min-width: 1025px) {

    .tf-sticky-btn-atc .tf-sticky-atc-img {
        width: 80px;
        height: 80px;
    }

}

@media (min-width: 1150px) {
    .sidebar-filter .canvas-body {
        padding: 0;
    }

    .tf-slideshow .wrap-pagination {
        bottom: 50px;
    }

    .tf-slideshow .wrap-pagination.pos2 {
        bottom: 40px;
    }

    .collection-item-circle.has-bg {
        padding: 20px 0px;
    }

    .tf-login-wrap .tf-login-content,
    .tf-login-wrap .tf-login-form {
        width: 551px;
        margin: 0 auto;
    }

    .tf-login-wrap form button {
        max-width: 270px;
    }

    .tf-breadcrumb-wrap {
        padding: 30px 0;
    }

    .animate-hover-btn:hover:after {
        animation: shine 0.75s cubic-bezier(0.01, 0.56, 1, 1);
    }

    .lg-px_40 {
        padding-left: 40px;
        padding-right: 40px;
    }

    .tf-lg-hidden {
        display: none;
    }

    .header-default .wrapper-header {
        min-height: 94px;
    }


    .container {
        padding-left: 50px;
        padding-right: 50px;
    }

    .container-full {
        padding-left: 40px;
        padding-right: 40px;
    }



    .card-product .card-product-info {
        padding-top: 20px;
        gap: 12px;
    }


    .card-product .card-product-wrapper .on-sale-wrap {
        top: 15px;
        left: 15px;
        right: 15px;
    }

    .card-product:hover .box-icon {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .card-product.lg .card-product-info .title {
        font-size: 20px;
        line-height: 24px;
    }

    .card-product.lg .card-product-info .price {
        font-size: 20px;
        line-height: 24px;
    }

    .card-product.lg .card-product-info .price .old-price {
        opacity: 0.5;
    }

    .list-product-btn {
        gap: 6px;
    }

    .list-product-btn .box-icon {
        width: 42px;
        height: 42px;
    }

    .tf-row-flex .tf-shop-sidebar {
        width: calc(25% - 6px);
    }

    .tf-row-flex .tf-shop-content {
        width: calc(75% - 15px);
    }

    .featured-product-item .card-product-info {
        gap: 12px;
    }

    .collection-item .collection-title {
        line-height: 46px;
        height: 46px;
        padding: 0 30px;
        font-size: 18px;
    }

    .collection-item .collection-title.px-16 {
        padding: 0 16px;
    }

    .collection-item .collection-content {
        bottom: 36px;
    }

    .collection-item.large .collection-content {
        bottom: 46px;
    }

    .collection-item-v4 .collection-content .tf-btn {
        margin-top: 30px;
    }

    .collection-item-v4 .collection-content .subheading {
        margin-bottom: 11px;
    }

    .collection-item-v4 .collection-content .heading {
        font-size: 28px;
        line-height: 33.6px;
    }

    .collection-item-circle .collection-content {
        margin-top: 45px;
    }

    .tf-marquee {
        padding-top: 30px;
        padding-bottom: 30px;
    }

    .tf-marquee .wrap-marquee {
        animation: slide-har 15s linear infinite;
    }

    .flat-title {
        margin-bottom: 60px;
    }

    .flat-title .title {
        font-size: 42px;
        line-height: 50.4px;
    }


    .collection-item-v4.style-3 .collection-content {
        bottom: 7%;
        left: 7%;
        right: 7%;
    }

    .tf-page-cart-wrap {
        display: grid;
        grid-template: repeat(2, auto)/66% 1fr;
        column-gap: 3rem;
    }

    .tf-page-cart-wrap.layout-2 {
        grid-template: repeat(2, auto)/60% 1fr;
    }

    .tf-cart-item .cart-info .cart-title {
        font-size: 16px;
        list-style: 22.4px;
    }

    .tf-cart-footer-inner {
        position: sticky;
        top: 100px;
        transition: top 0.3s ease;
    }


    .collection-item-v4.lg .collection-content {
        left: 60px;
        right: 60px;
    }


}

@media (min-width: 1440px) {

    .collection-item-circle.has-bg-2 {
        padding: 35px 45px;
    }

    .card-product .card-product-wrapper .list-product-btn {
        bottom: 48px;
    }

    .header-default .box-nav-ul {
        gap: 30px;
    }

    .header-default .box-nav-ul .menu-item > a::after {
        width: calc(100% + 60px);
    }

    .header-default .box-nav-ul.gap-40 {
        gap: 40px;
    }

    .header-default .box-nav-ul.gap-40 .menu-item > a::after {
        width: calc(100% + 60px);
    }

}


@media only screen and (max-width: 1799px) {
    .wrap-carousel .nav-next-slider {
        left: -50px;
    }

    .wrap-carousel .nav-prev-slider {
        right: -50px;
    }

  
}

@media only screen and (max-width: 1470px) {
    .footer .footer-wrap .footer-body::before {
        left: 15px;
        right: 15px;
        transform: unset;
        width: unset;
    }
}

@media only screen and (max-width: 1399px) {

    .card-product .count-down .countdown__item {
        min-width: 42px;
        min-height: 60px;
        padding: 0;
    }
}

@media only screen and (max-width: 1200px) {
    .tf-top-bar_wrap .tf-social-icon,
    .tf-top-bar_left {
        display: none !important;
    }

    .tf-top-bar .grid-3 {
        grid-template-columns: 1fr;
    }

    .wrapper-header .nav-icon {
        gap: 14px;
    }

    .footer .footer-logo,
    .footer .footer-heading {
        margin-top: 40px;
        margin-bottom: 22px;
    }


}

@media only screen and (max-width: 1149px) {
    .tf-toolbar-bottom {
        display: flex;
    }

    .sidebar-filter {
        position: fixed;
        bottom: 0;
        z-index: 3000;
        display: flex;
        flex-direction: column;
        background-clip: padding-box;
        outline: 0;
    }

    .sidebar-filter.left {
        top: 0;
        left: 0;
        transform: translateX(-100%);
    }

    .sidebar-filter.right {
        top: 0;
        right: 0;
        transform: translateX(100%);
    }

    .sidebar-filter.show {
        transform: none;
    }

    .card-product .count-down .countdown__timer {
        gap: 5px;
    }

    .card-product .count-down .countdown__item {
        min-height: 50px;
        padding: 0;
    }



    .tf-sticky-btn-atc {
        bottom: 67px;
    }

    .tf-model-viewer model-viewer {
        height: 780px;
    }

    .toggle-title {
        font-size: 14px !important;
        line-height: 22.4px !important;
    }

    .canvas-search {
        max-width: 400px;
        padding-top: 10px;
    }


    #ask_question input {
        height: 42px !important;
    }

    #ask_question textarea {
        height: 120px;
    }


    .widget-tabs.style-has-border .widget-menu-tab {
        gap: 10px 25px;
        margin: 0 15px;
    }

    .widget-tabs.style-has-border .widget-menu-tab .item-title {
        padding: 12px 0;
        font-size: 14px;
        line-height: 18px;
    }

    .widget-tabs.style-has-border .widget-content-tab .widget-content-inner {
        padding: 20px 15px;
    }


    .thumbs-slider {
        flex-direction: column !important;
    }

    .thumbs-slider > div {
        width: 100%;
    }

    .thumbs-slider .tf-product-media-thumbs {
        order: 1;
    }

    .thumbs-slider .tf-product-media-thumbs .swiper-slide {
        width: auto;
    }


    .tf-product-delivery {
        margin-bottom: 30px;
    }

    .btn-sidebar-mobile {
        display: block;
    }


    .wrap-slider .box-content p {
        margin-bottom: 32px;
    }
 
    .hover-sw-nav .sw-dots {
        display: flex;
    }

    .hover-sw-nav .nav-sw {
        display: none;
    }

    .slider-effect .box-content .heading {
        font-size: 40px;
        line-height: 48px;
        margin-bottom: 14px;
    }

    .slider-effect .box-content .heading br {
        display: none;
    }


    .slider-radius .tf-sw-slideshow {
        border-radius: 20px;
    }

    .slider-radius .tf-sw-slideshow .heading {
        margin-bottom: 20px;
    }


    [data-grid=grid-4],
    [data-grid=grid-5],
    [data-grid=grid-6] {
        grid-template-columns: repeat(3, 1fr);
    }

    .nav-sw.lg {
        width: 40px;
        height: 40px;
    }

    .wrap-carousel .nav-next-slider {
        left: -18px;
    }

    .wrap-carousel .nav-prev-slider {
        right: -18px;
    }

    .tf-page-cart-footer {
        margin-top: 30px;
    }


    .description p br {
        display: none;
    }

    .nav-sw.w_46 {
        width: 40px;
        height: 40px;
    }
}

@media only screen and (max-width: 1024px) {
  
    .tf-sticky-btn-atc {
        bottom: 67px;
    }

    .tf-page-title .heading {
        font-size: 32px;
        line-height: 38px;
    }
}

@media only screen and (max-width: 991px) {

    .button-style-arrow {
        width: 40px;
        height: 40px;
    }

    .my-account-nav {
        gap: 10px;
        margin-bottom: 30px;
    }

    .my-account-nav .my-account-nav-item {
        font-size: 16px;
        line-height: 28px;
        padding: 8px 15px;
    }

    .card-product .list-product-btn .box-icon .tooltip {
        margin-top: 0;
    }

    .tab-reviews .tab-reviews-heading .top {
        gap: 15px;
    }

    .form-write-review .form-content {
        margin-bottom: 15px;
    }

    .form-write-review .form-content .box-field:not(:last-child) {
        margin-bottom: 15px;
    }

}


@media only screen and (max-width: 767px) {


    .card-product .count-down {
        display: none;
    }

    .tf-sticky-btn-atc .tf-sticky-atc-product {
        display: none !important;
    }

    .tf-sticky-btn-atc .tf-sticky-atc-infos {
        width: 100%;
    }

    .tf-sticky-btn-atc .tf-sticky-atc-infos form {
        flex-direction: column;
    }

    .tf-banner-collection img {
        min-height: 300px;
    }

    .tf-banner-collection .box-content .heading {
        font-size: 22px;
        line-height: 26px;
    }

    .tf-banner-collection .box-content p {
        font-size: 14px;
        line-height: 22px;
        margin-bottom: 15px;
    }

    .canvas-search {
        max-width: 320px;
    }

    .modal-dialog {
        max-width: 500px !important;
    }

    .modal-dialog .demo-title {
        font-size: 18px !important;
        font-weight: 400 !important;
        line-height: 22px !important;
    }

    #ask_question button {
        font-size: 14px !important;
        height: 39px;
    }


    [qol-data-title]:before {
        content: attr(qol-data-title);
        color: var(--main);
        text-align: start;
        flex: 1 1 auto;
    }


    .tf-product-media-wrap {
        margin-bottom: 15px;
    }

    .footer .footer-heading-desktop {
        display: none;
    }

    .footer .footer-col-block .footer-heading-moblie {
        margin-top: 30px;
        margin-bottom: 15px;
        display: block;
        position: relative;
    }

    .footer .footer-col-block .footer-heading-moblie::after {
        position: absolute;
        content: "";
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        width: 12px;
        height: 1px;
        background-color: var(--main);
        transition: 0.25s ease-in-out;
    }

    .footer .footer-col-block .footer-heading-moblie::before {
        position: absolute;
        content: "";
        right: 15px;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 1px;
        height: 12px;
        background-color: var(--main);
        transition: 0.25s ease-in-out;
    }

    .footer .footer-col-block.open .footer-heading-moblie::before {
        opacity: 0;
    }

    .footer .footer-col-block.open .footer-heading-moblie::after {
        transform: translate(0%, -50%) rotate(180deg);
    }

    .footer .tf-collapse-content {
        display: none;
    }

    .footer .footer-bottom .footer-bottom-wrap {
        flex-wrap: wrap;
        margin-bottom: 56px;
    }

    .footer .footer-bottom .footer-bottom-wrap > div {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    #header .nav-icon .nav-account,
    #header .nav-icon .nav-wishlist{
        display: none;
    }

    .tf-slideshow .wrap-slider {
        height: 450px;
    }

    .slider-radius .wrap-slider {
        height: 350px;
    }

    .tf-btn.btn-xl {
        font-size: 16px;
        line-height: 40px;
        padding-top: 0;
        padding-bottom: 0;
    }

    .wrap-slider .box-content p {
        display: none;
    }

    .sw-dots {
        gap: 4px;
    }

    .sw-dots .swiper-pagination-bullet {
        width: 16px;
        height: 16px;
    }

    .tf-page-title {
        padding: 52px 0 49px;
    }

    .tf-page-title .heading {
        font-size: 22px;
        line-height: 26px;
    }

    .slider-effect {
        display: flex;
        flex-direction: column-reverse;
    }

    .slider-effect .box-content .heading {
        font-size: 34px;
        line-height: 40.8px;
    }

    .slider-effect .box-content .desc {
        display: block;
        margin-bottom: 22px;
        font-size: 16px;
        line-height: 19.2px;
    }


    .slider-radius {
        padding: 0;
    }

    .slider-radius .tf-sw-slideshow {
        border-radius: 0px;
    }

    .slider-radius .tf-sw-slideshow .subheading {
        display: block;
    }

    .slider-radius .tf-sw-slideshow .heading {
        margin-bottom: 20px;
    }

    .card-product .wishlist,
    .card-product .compare {
        display: none;
    }

    .card-product .card-product-wrapper .list-product-btn {
        bottom: 5px;
        left: 5px;
        right: 5px;
    }

    [data-grid=grid-2],
    [data-grid=grid-3],
    [data-grid=grid-4],
    [data-grid=grid-5],
    [data-grid=grid-6] {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }


    .nav-sw {
        width: 24px;
        height: 24px;
    }

    .wrap-carousel .nav-sw {
        display: none;
    }

    .wrap-carousel .sw-dots {
        display: flex;
        margin-top: 15px;
    }


    .tf-btn.style-3 {
        line-height: 38px;
    }

    .tf-btn.btn-md {
        padding: 0px 24px;
    }


    .tf-table-page-cart thead {
        display: none;
    }

    .tf-cart-item td[cart-data-title]:before {
        content: attr(cart-data-title);
        color: var(--main);
        text-align: start;
        flex: 1 1 auto;
    }

    .tf-cart-item {
        margin-bottom: 15px;
        padding-inline-start: 98px;
        min-height: 140px;
        display: block;
        font-size: 12px;
        font-weight: 600;
        position: relative;
    }

    .tf-cart-item td {
        display: flex;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        padding: 10px 0;
        margin: 0;
    }

    .tf-cart-item td:not(:last-child) {
        border-bottom: 1px dashed var(--line);
    }

    .tf-cart-item .img-box {
        position: absolute;
        top: 0;
        left: 0;
        overflow: hidden;
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }

    .tf-page-cart-checkout {
        padding: 30px 15px;
    }

    .tf-page-cart-checkout .tf-btn {
        height: 38px;
    }

    .btn-md {
        min-height: 40px;
    }

    .tf-btn:not(.btn-xl, .btn-md, .btn-line,  .style-3) {
        padding: 10px 24px;
    }

    .coupon-box input,
    .coupon-box .tf-btn {
        height: 40px;
    }

    .sw-dots.medium span {
        width: 16px;
        height: 16px;
        border-width: 1px !important;
    }



    .wrap-slider .box-content p {
        margin-bottom: 24px;
        font-size: 16px;
        line-height: 19.2px;
    }



}

@media only screen and (max-width: 575px) {
    
    .card-product .list-product-btn .box-icon .tooltip {
        display: none;
    }

    .card-product:not(.style-3) .list-product-btn .box-icon .text {
        display: none;
    }
}

.tf-shop-content {
    width: 100%;
}
