.img-banner {
    height: 290px;
    object-fit: cover;
    object-position: bottom -165px right 0;
}

.banner-section {
    max-width: 1400px;
    margin: 0 auto;
    padding-top: 48px;
}

.carousel-caption {
    bottom: -0.75rem !important;
    left: 5% !important;
}

.title-banner {
    font-size: 15px;
    line-height: 200%;
    color: #FFFFFF;
}

.filter-container {
    padding: 35px 16px;
    width: 195px;
    background: #EFEAE4;
    border-radius: 15px;
    margin-right: 40px;
    margin-top: 70px;
}

.filter-group {
    margin-bottom: 25px;
}

.filter-group:last-of-type {
    margin-bottom: 0;
    /* No margin-bottom for the last group */
}

.filter-title {
    margin-bottom: 15px;
    font-weight: 600;
    font-size: 15px;
    line-height: 20px;
    color: #000000;
}

.filter-option {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.filter-option label {
    font-weight: 300;
    font-size: 15px;
    line-height: 20px;
    color: #000000;
}

/* Ẩn checkbox mặc định */
.custom-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Tạo ô vuông tùy chỉnh cho checkbox */
.custom-checkbox .checkmark {
    height: 12px;
    /* Kích thước của ô vuông */
    width: 12px;
    /* Kích thước của ô vuông */
    background-color: #eee;
    /* Màu nền ô vuông */
    border: 1px solid #ccc;
    /* Viền ô vuông */
    border-radius: 3px;
    display: inline-block;
    position: relative;
    /* Quan trọng để định vị dấu chấm */
    margin-right: 10px;
    /* Khoảng cách giữa ô vuông và chữ */
    flex-shrink: 0;
    /* Ngăn ô vuông bị co lại */
}

/* Khi checkbox được chọn, thay đổi màu nền và hiển thị dấu chấm */
.custom-checkbox input[type="checkbox"]:checked+.checkmark {
    background-color: #fff;
    /* Giữ nền trắng khi checked */
    border-color: #ccc;
    /* Giữ màu viền khi checked */
}

/* Tạo dấu chấm bên trong ô vuông */
.custom-checkbox .checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

/* Hiển thị dấu chấm khi checkbox được chọn */
.custom-checkbox input[type="checkbox"]:checked+.checkmark:after {
    display: block;
}

/* Kiểu dáng của dấu chấm (chấm tròn đen) */
.custom-checkbox .checkmark:after {
    left: 50%;
    top: 50%;
    width: 8px;
    /* Kích thước của chấm tròn */
    height: 8px;
    /* Kích thước của chấm tròn */
    border-radius: 50%;
    /* Tạo hình tròn */
    background: black;
    /* Màu của chấm tròn */
    transform: translate(-50%, -50%);
    /* Căn giữa chấm tròn */
}

/* Radio button trong phần "By Collection" */
.custom-radio input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.custom-radio .radiomark {
    height: 12px;
    /* Kích thước của vòng tròn */
    width: 12px;
    /* Kích thước của vòng tròn */
    background-color: #eee;
    border: 1px solid #ccc;
    /* Tạo hình tròn */
    display: inline-block;
    position: relative;
    margin-right: 10px;
    flex-shrink: 0;
}

.custom-radio input[type="radio"]:checked+.radiomark {
    background-color: #fff;
    border-color: #ccc;
}

.custom-radio .radiomark:after {
    content: "";
    position: absolute;
    display: none;
}

.custom-radio input[type="radio"]:checked+.radiomark:after {
    display: block;
}

.custom-radio .radiomark:after {
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    background: black;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

/* Style cho option đầu tiên của By Collection (radio button) */
.filter-option.radio-selected label .radiomark {
    background-color: #fff;
    /* Để giống với hình ảnh có nền trắng */
    border-color: #ccc;
}

.filter-option.radio-selected label .radiomark:after {
    background-color: black;
    display: block;
}

.box-collection {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    margin-top: 50px;
    display: flex;
    align-items: flex-start;
}

.download-catalogue {
    margin-top: 25px;
    font-weight: 600;
    font-size: 14px;
    line-height: 20px;
    text-decoration-line: underline;
    color: #000000;
}

/* --- Products Section --- */
.products-section {
    padding: 80px 0;
    /* Padding trên dưới cho section */
    background: linear-gradient(261.17deg, #CAB9A9 2.67%, #F7F8F2 95.19%);
    margin-top: 100px;
}

.products-section .custom-container {
    max-width: 1400px;
    /* Đặt chiều rộng tối đa cho container lớn hơn */
    margin: 0 auto;
    /* Căn giữa container */
    padding: 0 15px;
    /* Padding ngang */
    margin: 0 auto
}

.section-title {
    text-align: center;
    /* Căn giữa tiêu đề */
    font-weight: 400;
    font-size: 57px;
    line-height: 64px;
    text-align: center;
    letter-spacing: -0.25px;
    color: #000000;
}

.sub-title-product {
    font-style: normal;
    font-weight: 700;
    font-size: 57px;
    line-height: 64px;
    letter-spacing: -0.25px;
    color: #101088;
}


/* Product Categories (Collection Filters) */
.product-categories {
    display: flex;
    justify-content: space-around;
    /* Căn giữa các nút */
    flex-wrap: wrap;
    /* Cho phép xuống dòng trên mobile */
    gap: 15px;
    /* Khoảng cách giữa các nút */
    margin-bottom: 60px;
    width: 100%;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}

.category-btn {
    font-style: normal;
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;
    text-align: center;
    color: #918989;
    text-decoration: none;
}

.category-btn:focus,
.category-btn:active,
.category-btn:hover,
.category-btn:visited,
.category-btn:link {
    color: #918989;
    text-decoration: none;
}

.category-active {
    font-weight: 700;
    font-size: 15px;
    line-height: 20px;
    text-decoration-line: underline !important;
    color: #000000 !important;
}

.all-product-btn,
.catalouge-btn {
    font-weight: bold;
    font-size: 12px;
    line-height: 16px;
    color: #372E21;
    background: linear-gradient(90deg, #E0DBD0 0%, #C8B395 100%);
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    border-radius: 15px;
    padding: 6px 5px;
    width: 94px;
}

/* Product Carousel & Grid */
#productCarousel,
#productCarouselPrime,
#productCarouselSimple,
#productCarouselEuropean {
    position: relative;
    padding: 0 45px;
    /* Thêm padding để mũi tên không bị dính sát cạnh */
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* 4 cột bằng nhau */
    gap: 30px;
    /* Khoảng cách giữa các sản phẩm */
    padding: 20px 20px 0 20px;
    /* Khoảng cách cho các product card bên trong slide */
}

.carousel-item {
    float: none;
    /* Loại bỏ float */
    margin-right: 0;
    /* Xóa margin-right */
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    /* Chiếm toàn bộ chiều rộng của cha */
    height: 100%;
    /* Chiếm toàn bộ chiều cao của cha */
    opacity: 0;
    /* Mặc định ẩn */
    transform: translateX(0);
    /* Đảm bảo vị trí ban đầu là 0 */
}

/* Khi .carousel-item là active, nó sẽ hiển thị */
.carousel-item.active {
    display: block;
    /* Đảm bảo hiển thị */
    opacity: 1;
    /* Hiển thị hoàn toàn */
    position: relative;
    z-index: 2;
    /* Hoặc relative nếu muốn nó tham gia vào flow của flex/grid */
    /* Quan trọng: Nếu bạn dùng grid/flex bên trong, hãy xem xét dùng position:relative thay vì absolute */
    /* Tuy nhiên, carousel của Bootstrap thường dùng absolute cho item để chúng chồng lên nhau */
}

/* Các lớp Bootstrap thêm vào khi chuyển động */
.carousel-item-next,
.carousel-item-prev,
.carousel-item.active.carousel-item-right,
.carousel-item.active.carousel-item-left {
    position: absolute;
    /* Giữ nguyên absolute khi chuyển động */
    display: block;
    opacity: 1;
}

/* Điều chỉnh lại .carousel-inner để chứa các absolute items */
.carousel-inner {
    position: relative;
    /* Quan trọng để .carousel-item absolute căn cứ vào đây */
    width: 100%;
    overflow: hidden;
    /* Đảm bảo cắt bỏ phần tràn */
    min-height: 129px;
    /* Chiều cao tự động, hoặc đặt chiều cao cố định nếu muốn */
    /* Padding có thể cần điều chỉnh lại nếu bạn thay đổi vị trí mũi tên */
}


.product-image-wrapper img {
    width: 150px;
    height: 129px;
    object-fit: cover;
    border-radius: 20px;
}

.product-name {
    font-weight: 700;
    font-size: 15px;
    line-height: 20px;
    color: #000000;
    margin: 10px 0;
}

.product-spec {
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    color: #000000;
    margin: 0;
}

.view-detail-btn {
    background: #101088;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    border-radius: 15px;
    font-weight: 600;
    font-size: 12px;
    line-height: 16px;
    text-align: center;
    color: #FFFFFF;
    padding: 7px 17px;
    border: none;
    margin-top: 19px;
}

.view-detail-btn:focus,
.view-detail-btn:active,
.view-detail-btn:hover,
.view-detail-btn:visited,
.view-detail-btn:link {
    color: #FFFFFF;
    text-decoration: none;
    background: #101088;

}

/* Custom Carousel Controls (Mũi tên) */
.custom-control-prev,
.custom-control-next {
    width: 45px;
    /* Kích thước của nút mũi tên */
    height: 45px;
    background: none !important;
    border: 1px solid #000 !important;
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    /* Luôn hiển thị */
    transition: background-color 0.3s ease;
}

.custom-control-prev {
    left: 0;
    /* Đặt mũi tên trái ở lề trái */
}

.custom-control-next {
    right: 0;
    /* Đặt mũi tên phải ở lề phải */
}

.custom-control-prev:hover,
.custom-control-next:hover {
    background-color: rgba(255, 255, 255, 1);
    /* Nền trắng mờ hơn khi hover */
}

.custom-control-prev-icon,
.custom-control-next-icon {
    /* Đảm bảo màu icon là màu đen (#000) */
    background-image: url('../../img/icon-left.png') !important;
    width: 30px !important;
    /* Kích thước icon */
    height: 30px !important;
}

/* Đảo ngược icon cho mũi tên phải và đổi màu sang đen */
.custom-control-prev-icon {
    background-image: url('../../img/icon-left.png') !important;
    transform: scaleX(-1);
}

.img-collection {
    width: 425px;
    border-radius: 20px;
}

.title-collection {
    font-weight: 700;
    font-size: 30px;
    line-height: 41px;
    color: #000000;
    margin-bottom: 30px;
}

.list-collection {
    display: flex;
    margin-bottom: 50px;
    flex-direction: column;
}

.collection {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 50px;
}

.collection-left {
    margin-right: 25px;
}

.title-spc {
    font-weight: 700;
    font-size: 30px;
    line-height: 41px;
    color: #000000;
}

.box-spc {
    display: flex;
    justify-content: space-between;
    margin-bottom: 25px;
}

.sub-content-spc {
    width: 260px;
    height: 155px;
    background: #FFFFFF;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.img-spc {
    width: 250px;
}

.title-content-spc {
    font-weight: 700;
    font-size: 15px;
    line-height: 20px;
    color: #000000;
    margin-bottom: 0;
    margin-top: 10px;
}

.view-detail-btn-sp {
    display: none;
}

.box-spc-sp {
    display: none;
}

.filter-header {
    display: none;
}

@media (max-width: 1400px) {
    .view-detail-btn-sp {
        display: block;
        background: #101088;
        box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
        border-radius: 15px;
        font-weight: 600;
        font-size: 12px;
        line-height: 16px;
        text-align: center;
        color: #FFFFFF;
        padding: 7px 17px;
        border: none;
        width: 130px;
    }

    .view-detail-btn-sp:focus,
    .view-detail-btn-sp:active,
    .view-detail-btn-sp:hover,
    .view-detail-btn-sp:visited,
    .view-detail-btn-sp:link {
        color: #FFFFFF;
        text-decoration: none;
        background: #101088;
    }

    .title-collection {
        font-size: 25px;
        margin-bottom: 20px;
        line-height: 100%;
    }

    .collection-left {
        position: relative;
        margin-right: 0;
    }

    .box-title-collection {
        position: absolute;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        bottom: 5%;
        right: 7%;
    }

    .view-detail-btn {
        display: none;
    }

    .box-collection {
        justify-content: space-between;
    }

    .list-collection {
        width: 70%;
        padding-right: 30px;
    }

    .img-collection {
        width: 100%;
        object-fit: cover;
    }

    #productCarouselPrime,
    #productCarouselSimple,
    #productCarouselEuropean {
        padding: 0 25px;
    }

    .custom-control-prev,
    .custom-control-next {
        width: 25px;
        height: 25px;
    }

    .carousel-control-next-icon,
    .carousel-control-prev-icon {
        background-size: 21px 21px;
    }

    .custom-control-prev-icon,
    .custom-control-next-icon {
        width: 21px !important;
        height: 21px !important;
    }

    .product-image-wrapper img {
        height: 100px;
    }

    .filter-container {
        margin-left: 30px;
        margin-top: 0;
    }

    .collection {
        align-items: center;
        margin-bottom: 50px;
        flex-direction: column;
    }
}

@media (max-width: 1230px) {
    .box-spc-sp {
        display: flex;
        margin-bottom: 36px;
        justify-content: space-between;
    }

    .box-spc {
        display: none;
    }

    .img-banner {
        border-radius: 0;
    }

}


@media (max-width: 919px) {
    .sub-content-spc {
        width: 230px;
    }

    .img-spc {
        width: 230px;
    }
}


@media (max-width: 767px) {
    .filter-header {
        padding: 15px;
        cursor: pointer;
        font-weight: bold;
        border-bottom: 1px solid #eee;
        margin-bottom: 15px;
        background: #EFEAE4;
        font-size: 15px;
        line-height: 20px;
        display: flex;
        align-items: center;
        color: #000000;
        width: 100%;
        max-width: 400px;
    }

    .filter-header i {
        margin-right: 10px;
        color: #555;
    }

    .filter-container {
        display: none;
    }

    .img-banner {
        object-position: bottom 0 right 0;
    }

    .box-collection {
        align-items: center;
        flex-direction: column;
        max-width: 700px;
        padding: 25px;
        margin-top: 0;
    }

    .list-collection {
        padding-right: 0;
        width: 100%;
    }

    .product-grid {
        grid-template-columns: repeat(2, 1fr);
        padding: 20px 0 0 0;
    }

    .custom-control-prev,
    .custom-control-next {
        display: none;
    }

    #productCarouselPrime,
    #productCarouselSimple,
    #productCarouselEuropean {
        padding: 0;
    }

    .title-collection {
        font-size: 20px;
    }

    .title-collection {
        margin-bottom: 10px;
    }

    .filter-container {
        position: absolute;
        z-index: 3;
        margin: 0;
        width: 100%;
        border-radius: 0;
        top: calc(100% - 15px);
    }

    .sub-content-spc {
        width: 160px;
    }

    .img-spc {
        width: 160px;
    }

    .section-filter {
        position: relative;
        width: 100%;
        max-width: 400px;
    }
}

@media (max-width: 390px) {
    .view-detail-btn-sp {
        font-size: 10px;
    }
}