/* Project-wide responsive overrides. Loaded after the theme CSS. */

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

table {
    max-width: 100%;
}

.main--wrapper,
.tf-header,
.tf-footer,
.flat-content,
.tf-sp-1,
.tf-sp-2,
.tf-sp-5 {
    width: 100%;
    max-width: 100%;
}

.container,
.container-fluid {
    min-width: 0;
}

.row,
[class*="col-"],
.swiper,
.swiper-wrapper,
.swiper-slide,
.card-product,
.content-area,
.tf-product-info-wrap,
.tf-product-info-content,
.tf-product-info-choose-option {
    min-width: 0;
}

.breakcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-left: 0;
    word-break: break-word;
}

.breakcrumbs li {
    min-width: 0;
}

.flat-title,
.tf-shop-control,
.tf-control-view,
.ft-bottom {
    min-width: 0;
}

.flat-title {
    gap: 12px;
}

.flat-title h1,
.flat-title h2,
.flat-title h3,
.flat-title h4,
.flat-title h5,
.flat-title h6 {
    min-width: 0;
    overflow-wrap: anywhere;
}

.box-btn-slide {
    flex: 0 0 auto;
}

.nav-swiper,
.swiper-button-prev,
.swiper-button-next {
    width: 38px;
    height: 38px;
}

.serch-result {
    max-width: 100%;
}

.tf-header .logo-site,
.tf-header .logo-site a,
.tf-header .logo-site img,
.canvas-mb .logo-site,
.canvas-mb .logo-site a,
.canvas-mb .logo-site img,
.ft-logo .logo-site,
.ft-logo .logo-site img {
    display: block !important;
}

.tf-header .logo-site img,
.canvas-mb .logo-site img,
.ft-logo .logo-site img {
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
}

.name-product,
.rb-product-name,
.rb-product-desc,
.rb-price-text,
.price-wrap,
.call-price-link,
.rb-call-price-link,
.product-info-name,
.body-text-3,
.body-md-2 {
    overflow-wrap: anywhere;
}

.card-product img,
.rb-product-img img,
.product-img img {
    max-width: 100%;
}

.tf-grid-layout,
.rb-product-grid {
    min-width: 0;
}

.rb-product-card {
    min-width: 0;
}

.rb-price-row,
.rb-card-actions,
.rb-rating-row,
.group-btn,
.price-wrap {
    min-width: 0;
}

.rb-card-actions {
    flex-wrap: wrap;
}

.rb-view-details-btn,
.rb-cart-area {
    min-width: 0;
}

.rb-side-action-group {
    flex: 0 0 auto;
}

@media (min-width: 1200px) {
    .rb-card-actions .rb-side-action-group {
        display: none !important;
    }

    .rb-card-actions .rb-cart-area,
    .rb-card-actions .rb-view-details-btn {
        flex: 1 1 100%;
    }
}

.product-list-wrap {
    padding-left: 0;
}

.card-product.style-row,
.row-small-2 {
    min-width: 0;
}

.tf-product-media-wrap,
.tf-product-media-main,
.tf-product-media-thumbs,
.thumbs-slider,
.tf-product-info-list {
    max-width: 100%;
}

.tf-product-media-wrap.sticky-top,
.tf-product-info-choose-option.sticky-top {
    top: 96px;
}

.tf-product-info-list {
    gap: 24px;
}

.tf-image-zoom,
.tf-product-media-main img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.rb-product-secondary-actions,
.rb-single-product-actions,
.product-box-btn {
    min-width: 0;
}

.rb-product-action-btn,
.rb-enquiry-action {
    min-width: 0;
}

.rb-description-content,
#des .rb-description-content {
    max-width: 100%;
    overflow-wrap: anywhere;
}

#des .rb-description-content table {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto;
}

.tf-footer,
.ft-body-wrap,
.ft-body-inner,
.ft-inner,
.ft-link-wrap {
    min-width: 0;
}

.tf-footer ul {
    padding-left: 0;
}

.ft-menu-list a,
.ft-contact-list a,
.nocopy {
    overflow-wrap: anywhere;
}

.social-list,
.socials {
    padding-left: 0;
}

.product_compare.is-loading {
    opacity: 0.65;
    cursor: progress !important;
}

.rb-inline-toast {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 99999;
    max-width: min(320px, calc(100vw - 32px));
    padding: 11px 14px;
    border-radius: 8px;
    background: #111827;
    color: #ffffff;
    font-size: 14px;
    line-height: 1.4;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.2);
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.rb-inline-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.rb-inline-toast-error {
    background: #b42318;
}

.rb-inline-toast-success {
    background: #16703c;
}

@media (max-width: 991.98px) {
    .compare-table-wrap {
        width: 100%;
        max-width: 100%;
        overflow-x: visible !important;
    }

    table.compare-table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: auto !important;
    }

    table.compare-table th,
    table.compare-table td {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        line-height: 1.45;
    }

    table.compare-table th:first-child,
    table.compare-table td:first-child {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

@media (max-width: 767.98px) {
    .compare-table-wrap {
        overflow-x: hidden !important;
    }

    table.compare-table,
    table.compare-table thead,
    table.compare-table tbody,
    table.compare-table tr,
    table.compare-table th,
    table.compare-table td {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    table.compare-table thead tr,
    table.compare-table tbody tr {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: 100% !important;
    }

    table.compare-table tbody tr > th {
        grid-column: 1 / -1;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: auto;
        padding: 10px 12px !important;
        text-align: left !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }

    table.compare-table .spec-head-row th,
    table.compare-table .group-row th {
        text-align: left !important;
    }

    table.compare-table tbody tr > td {
        min-height: 46px;
        display: flex !important;
        align-items: center;
        white-space: normal !important;
        overflow: visible !important;
    }
}

@media (max-width: 1199.98px) {
    .flat-title-tab-product-des .flat-title-tab {
        max-width: 100%;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: thin;
        scrollbar-color: #b9bdc7 #edf0f5;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
    }

    .flat-title-tab-product-des .flat-title-tab::-webkit-scrollbar {
        display: block !important;
        height: 6px;
    }

    .flat-title-tab-product-des .flat-title-tab::-webkit-scrollbar-track {
        background: #edf0f5;
        border-radius: 999px;
    }

    .flat-title-tab-product-des .flat-title-tab::-webkit-scrollbar-thumb {
        background: #b9bdc7;
        border-radius: 999px;
    }

    .flat-title-tab-product-des .menu-tab-line {
        display: flex !important;
        flex-wrap: nowrap !important;
        width: max-content;
        min-width: 100%;
    }

    .flat-title-tab-product-des .nav-tab-item {
        flex: 0 0 auto;
    }
}

@media (max-width: 420px) {
    table.compare-table thead tr,
    table.compare-table tbody tr {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1199.98px) {
    .tf-header .inner-header {
        position: relative;
        z-index: 10;
    }

    .tf-header .logo-site img {
        max-height: 48px;
        width: auto;
    }

    .header-bt-right .nav-icon {
        gap: 8px;
    }

    .s-banner-wrapper {
        display: block !important;
    }

    .s-banner-wrapper .wrap-item-2,
    .s-banner-wrapper .wrap-item-3 {
        width: 100% !important;
        max-width: 100% !important;
    }

    .s-banner-wrapper .wrap-item-3 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        margin-top: 12px;
    }

    .s-banner-wrapper .wrap-item-3 .cls-category,
    .s-banner-wrapper .wrap-item-3 img {
        width: 100%;
    }

    .home-hero-swiper,
    .banner-swiper {
        width: 100%;
    }

    .slider-card {
        min-height: 260px;
        background-size: cover;
        background-position: center;
    }

    .wrapper-control-shop,
    .tf-product-view-content {
        display: block !important;
    }

    .content-area {
        width: 100% !important;
        max-width: 100% !important;
    }

    .canvas-filter-product {
        width: min(88vw, 360px);
        max-width: 100%;
    }

    .canvas-filter-product .canvas-wrapper {
        max-width: 100%;
    }

    .tf-shop-control {
        align-items: center;
        justify-content: space-between;
    }

    .tf-control-view {
        margin-left: auto;
    }

    .rb-product-grid.tf-grid-layout,
    .tf-grid-layout.lg-col-4,
    .tf-grid-layout.md-col-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .tf-product-info-list {
        flex-wrap: wrap !important;
    }

    .tf-product-info-choose-option {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .tf-sp-1,
    .tf-sp-2,
    .tf-sp-5 {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    .flat-title {
        align-items: center;
    }

    .rb-product-grid.tf-grid-layout,
    .tf-grid-layout.lg-col-4,
    .tf-grid-layout.md-col-3,
    .tf-grid-layout.sm-col-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }

    .rb-product-image-wrap {
        height: 210px;
    }

    .rb-floating-actions {
        opacity: 1;
        transform: none;
    }

    .rb-card-actions .rb-side-action-group {
        display: flex !important;
    }

    .card-product .list-product-btn,
    .card-product .rb-floating-actions {
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        pointer-events: auto !important;
    }

    .card-product .list-product-btn li.d-none,
    .card-product .list-product-btn li.d-sm-block {
        display: block !important;
    }

    .tf-main-product .row {
        row-gap: 24px;
    }

    .tf-main-product .col-md-6 {
        width: 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .tf-product-media-wrap.sticky-top,
    .tf-product-info-choose-option.sticky-top {
        position: static !important;
    }

    .product-info-name {
        font-size: 22px;
        line-height: 1.35;
    }

    .tf-product-info-choose-option,
    .product-delivery,
    .rb-single-product-actions {
        width: 100%;
    }

    .rb-product-secondary-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .rb-product-action-btn {
        width: 100%;
    }

    .ft-inner {
        display: block !important;
    }

    .ft-logo {
        margin-bottom: 24px;
    }

    .ft-link-wrap.tf-grid-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px;
    }

    .ft-bottom {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        text-align: center;
    }
}

@media (max-width: 767.98px) {
    .container,
    .container-fluid {
        padding-left: 14px;
        padding-right: 14px;
    }

    .tf-header .inner-header {
        padding-top: 8px;
    }

    .tf-header .row {
        align-items: center;
    }

    .tf-header .logo-site img {
        max-height: 42px;
    }

    .mobile-header-panel {
        padding-top: 8px;
        padding-bottom: 10px;
    }

    .mobile-header-logo,
    .mobile-header-search input {
        height: 44px;
        min-height: 44px;
    }

    .mobile-header-panel {
        grid-template-columns: 68px minmax(0, 1fr);
    }

    .mobile-header-logo {
        width: 68px;
        padding: 0;
    }

    .mobile-header-logo img {
        max-height: 34px;
    }

    .header-search-form .serch-result {
        max-height: 300px;
        border-radius: 8px;
    }

    .s-banner-wrapper .wrap-item-3 {
        grid-template-columns: 1fr;
    }

    .slider-card {
        min-height: 190px;
    }

    .news {
        margin-bottom: 24px !important;
    }

    .news-heading {
        font-size: 13px;
    }

    .flat-title {
        margin-bottom: 14px;
    }

    .flat-title .box-btn-slide {
        display: inline-flex !important;
        align-items: center;
        gap: 8px;
        margin-left: auto;
    }

    .flat-title .box-btn-slide .nav-swiper,
    .flat-title .box-btn-slide .swiper-button-prev,
    .flat-title .box-btn-slide .swiper-button-next {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        width: 32px !important;
        height: 32px !important;
        min-width: 32px;
        border-radius: 999px;
        background: #ffffff;
        border: 1px solid rgba(17, 24, 39, 0.12);
        box-shadow: 0 6px 16px rgba(17, 24, 39, 0.12);
        color: #001443;
        margin: 0 !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        opacity: 1;
    }

    .flat-title .box-btn-slide .swiper-button-prev::after,
    .flat-title .box-btn-slide .swiper-button-next::after {
        display: none;
    }

    .tf-sw-products {
        position: relative;
        padding-bottom: 20px;
    }

    .tf-sw-products::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 32px;
        width: 34px;
        z-index: 3;
        pointer-events: none;
        background: linear-gradient(90deg, rgba(255, 255, 255, 0), #ffffff 88%);
    }

    .tf-sw-products .swiper-slide {
        transition: transform 0.2s ease;
    }

    .sw-dot-default,
    .swiper-pagination {
        min-height: 18px;
    }

    .sw-dot-default .swiper-pagination-bullet,
    .swiper-pagination .swiper-pagination-bullet {
        width: 8px;
        height: 8px;
        margin: 0 4px !important;
        opacity: 0.35;
        background: #9aa3af;
        transition: width 0.2s ease, opacity 0.2s ease, background-color 0.2s ease;
    }

    .sw-dot-default .swiper-pagination-bullet-active,
    .swiper-pagination .swiper-pagination-bullet-active {
        width: 24px;
        border-radius: 999px;
        opacity: 1;
        background: #423376;
    }

    .flat-title h5 {
        font-size: 18px;
        line-height: 1.35;
    }

    .tf-shop-control {
        gap: 10px;
    }

    .tf-control-layout {
        gap: 6px;
    }

    .tf-control-layout .tab-link {
        width: 38px;
        height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .rb-product-grid.tf-grid-layout,
    .tf-grid-layout.lg-col-4,
    .tf-grid-layout.md-col-3,
    .tf-grid-layout.sm-col-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .rb-product-card {
        border-radius: 8px !important;
    }

    .rb-product-card:hover {
        transform: none;
    }

    .card-product .list-product-btn,
    .card-product .rb-floating-actions {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        pointer-events: auto !important;
    }

    .card-product .list-product-btn {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 8;
        flex-direction: column;
        gap: 8px;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .card-product .list-product-btn li,
    .card-product .list-product-btn li.d-none,
    .card-product .list-product-btn li.d-sm-block,
    .card-product .rb-floating-actions li {
        display: block !important;
    }

    .card-product .box-icon,
    .card-product .btn-icon-action,
    .card-product .rb-icon-btn {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        border-radius: 50% !important;
        background: #ffffff !important;
        color: #111827 !important;
        box-shadow: 0 8px 18px rgba(17, 24, 39, 0.16);
    }

    .card-product .tooltip,
    .card-product .hover-tooltip .tooltip {
        display: none !important;
    }

    .rb-product-image-wrap {
        height: 170px;
    }

    .rb-product-img img {
        padding: 12px;
    }

    .rb-product-content {
        padding: 12px;
    }

    .rb-product-category {
        font-size: 10px;
        margin-bottom: 6px;
    }

    .rb-product-name {
        min-height: 40px;
        font-size: 13px;
        line-height: 1.35;
    }

    .rb-product-feature-list,
    .rb-product-desc {
        min-height: 0;
        font-size: 12px;
        line-height: 1.45;
        margin-bottom: 10px;
        -webkit-line-clamp: 2;
    }

    .rb-rating-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
        margin-bottom: 10px;
    }

    .rb-price-row {
        padding: 9px;
        border-radius: 8px;
    }

    .rb-price-text {
        font-size: 12px;
        line-height: 1.4;
    }

    .rb-card-actions {
        border-radius: 8px;
        align-items: stretch;
    }

    .rb-cart-area,
    .rb-view-details-btn {
        flex: 1 1 100%;
    }

    .rb-side-action-group {
        width: 100%;
        justify-content: stretch;
    }

    .rb-mini-btn {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        height: 38px !important;
    }

    .card-product.style-row,
    .row-small-2 {
        display: grid !important;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 12px;
        align-items: start;
    }

    .card-product.style-row .card-product-wrapper,
    .row-small-2 .card-product-wrapper {
        width: 92px !important;
        min-width: 92px;
    }

    .card-product.style-row .card-product-info,
    .row-small-2 .card-product-info {
        min-width: 0;
    }

    .price-wrap .new-price,
    .price-wrap h4 {
        font-size: 13px !important;
        line-height: 1.45;
    }

    .tf-product-media-main .item {
        min-height: 280px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .tf-product-media-main img {
        max-height: 320px;
    }

    .tf-product-media-thumbs .swiper-slide {
        width: 76px !important;
    }

    .infor-heading,
    .infor-center,
    .infor-bottom {
        padding-left: 0;
        padding-right: 0;
    }

    .tf-product-info-choose-option {
        padding: 12px !important;
    }

    .product-info-name {
        font-size: 20px;
    }

    .product-fearture-list,
    .rb-product-feature-list {
        padding-left: 18px !important;
    }

    .product-box-btn {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .rb-enquiry-action {
        width: 100%;
        min-height: 46px;
    }

    .rb-product-secondary-actions {
        grid-template-columns: 1fr;
    }

    .product-popup-image-wrap {
        min-height: 320px !important;
        padding: 14px !important;
    }

    .product-popup-image-wrap img {
        max-height: 320px !important;
    }

    .ft-link-wrap.tf-grid-layout {
        grid-template-columns: 1fr !important;
        gap: 0;
    }

    .footer-col-block {
        padding: 14px 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .ft-contact-list li {
        align-items: flex-start;
    }

    .socials {
        justify-content: center;
        flex-wrap: wrap;
    }
}

@media (max-width: 420px) {
    .rb-product-grid.tf-grid-layout,
    .tf-grid-layout.lg-col-4,
    .tf-grid-layout.md-col-3,
    .tf-grid-layout.sm-col-2 {
        grid-template-columns: 1fr !important;
    }

    .rb-product-image-wrap {
        height: 210px;
    }

    .slider-card {
        min-height: 165px;
    }

    .mobile-bottom-toolbar .toolbar-label {
        font-size: 10px;
    }
}
