:root {
    --primary: #ff2e55;
    --primary-dark: #e12045;
    --bg: #f5f5f5;
    --text: #111;
    --subtext: #777;
    --border: #eee;
    --danger: #ff4242;
}

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--bg);
    color: var(--text);
    padding-bottom: 80px; /* chừa chỗ thanh mua dưới */
}
.app-bravery{
    padding: 0 !important;
}
.product-page {
    max-width: 480px;
    margin: 0 auto;
    background: #fff;
}

/* SLIDER */
.product-media {
    background: #000;
}

.product-media .carousel-inner {
    touch-action: pan-y; /* ưu tiên vuốt ngang mượt */
}

.product-media .carousel-item {
    transition: transform .25s ease-in-out !important; /* mặc định ~.6s */

}

.product-media .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.product-media.item-long .carousel-item{
    height: 550px;
}

.slider-indicator-badge {
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: rgba(0,0,0,0.5);
    color: #fff;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 12px;
    z-index: 5;
}

.carousel-indicators.custom-indicators {
    bottom: 12px;
}

.carousel-indicators.custom-indicators [data-bs-target] {
    width: 14px;
    height: 4px;
    border-radius: 999px;
    background-color: rgba(255,255,255,0.4);
    border: none;
}

.carousel-indicators.custom-indicators .active {
    background-color: #fff;
    width: 24px;
}
.product-media .carousel-item {
    height: 360px;
    background: #000;
    position: relative;
}

.carousel-video {
    object-fit: cover;
    height: 100%;
    background: #000;
}

/* nút âm thanh nổi góc phải như TikTok */
.video-sound-btn {
    position: absolute;
    left: 10px;
    top: 10px;
    z-index: 5;
    border: none;
    background: rgba(0,0,0,0.55);
    color: #fff;
    font-size: 14px;
    padding: 6px 8px;
    border-radius: 999px;
}



















/* BLOCK CHIA SECTION */
.block {
    padding: 12px;
    border-bottom: 8px solid #f6f6f6;
    background: #fff;
}
.block-attr{
    padding: 5px;
}

.product-title {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.price-current {
    font-size: 22px;
    font-weight: 700;
    color: var(--danger);
}

.price-old {
    font-size: 13px;
    color: var(--subtext);
    text-decoration: line-through;
}

.badge-sale {
    font-size: 11px;
    padding: 2px 6px;
    border-radius: 4px;
    background: #fff0f3;
    color: var(--danger);
    border: 1px solid #ffd0da;
}

.tag-rating {
    font-size: 11px;
    background: #fff5e0;
    color: #f39c12;
    border-radius: 4px;
    padding: 2px 6px;
}

.dot-divider::before {
    content: "•";
    margin: 0 4px;
    color: var(--subtext);
}

.voucher-pill {
    border-radius: 6px;
    border: 1px dashed #ffb3c3;
    background: #fff6f8;
    padding: 4px 8px;
    font-size: 11px;
    white-space: nowrap;
    color: var(--danger);
}
.voucher-pill strong{
    font-size: 15px;
}

.option-item {
    padding: 6px 10px;
    border-radius: 16px;
    border: 1px solid var(--subtext);
    font-size: 12px;
    background: #fafafa;
    cursor: pointer;
    user-select: none;
    font-weight: 600;
}

.option-item.active {
    border-color: var(--primary);
    color: var(--primary);
    background: #fff5f7;
    font-weight: 600;
}

.qty-btn {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid #ddd;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    padding: 0;
}

.description-text{
    font-size: 15px;
    line-height: 1.6;
    color: #444;
}

/* chỉnh lại khoảng cách giữa các <p> */
.description-text p{
    margin: 0 0 4px;      /* bỏ khoảng trống lớn, chỉ chừa 4px dưới */
}

.description-text p:last-child{
    margin-bottom: 0;
}

/* THANH MUA DƯỚI */
.bottom-bar-wrapper {
    max-width: 480px;
    margin: 0 auto;
}

.bottom-thumb {
    width: 40px;
    height: 40px;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
}

.bottom-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bottom-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 190px;
    font-size: 11px;
}

.bottom-price {
    font-size: 13px;
    font-weight: 700;
    color: var(--danger);
}

.btn-outline-primary-custom {
    border-color: var(--primary);
    color: var(--primary);
    background-color: #fff;
    font-size: 11px;
    border-radius: 999px;
    padding: 6px 10px;
}

.btn-primary-custom {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #fff;
    font-size: 11px;
    border-radius: 999px;
    padding: 6px 14px;
    font-weight: 600;
}

.btn-primary-custom:active {
    background-color: var(--primary-dark);
    border-color: var(--primary-dark);
}

/* clone ảnh bay vào giỏ */
.fly-img {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.18);
    transition: transform .8s cubic-bezier(.2,.8,.2,1), opacity .8s ease;
    opacity: 1;
    will-change: transform, opacity;
}

/* rung icon giỏ nhẹ */
@keyframes cart-bounce {
    0% { transform: scale(1); }
    30% { transform: scale(1.15); }
    60% { transform: scale(0.95); }
    100% { transform: scale(1); }
}
.cart-bounce {
    animation: cart-bounce .35s ease;
}

/* option màu có hình + chữ */
.color-card {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px 4px 4px;
    border: 1px solid #e6e6e6;
    border-radius: 999px;
    background: #fff;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: all .15s ease;
    white-space: nowrap;
    font-weight: 600;
}


.color-card.active {
    border-color: #ff2e55;
    background: #fff6fa;
    color: #ff2e55;
}

.color-card .thumb {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: #f5f5f5;
}

.color-card .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* badge Hot nhỏ như TikTok */
.color-hot {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #ffe9ef;
    color: #ff2e55;
    font-weight: 700;
    margin-left: 4px;
}
.app-header {
    position: sticky;
    top: 0;
    z-index: 200;
    background: #fff;
    border-bottom: 1px solid #eee;
}

.app-header .logo {
    height: 28px;
    width: auto;
    object-fit: contain;
}

.cart-btn {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f6f6f6;
    border: 1px solid #f0f0f0;
    position: relative;
    cursor: pointer;
}

.cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #ff2e55;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.qty-cart-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    background:#fff;
    border:1px solid #eee;
    border-radius:14px;
    overflow: hidden;
}

.qty-wrap{
    display:flex;
    align-items:center;
    gap:8px;
}

.qty-label{
    font-size:13px;
    color:#666;
    min-width:54px;
}

.qty-control{
    display:flex;
    align-items:center;
    gap:8px;
    background:#f7f7f7;
    border:1px solid #eee;
    border-radius:999px;
    padding:4px 8px;
}
.btn-addcart{
    flex:1;
    border:none;
    background:#ff2e55;
    color:#fff;
    font-weight:700;
    font-size:14px;
    padding:10px 14px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    white-space:nowrap;
    box-shadow:0 6px 14px rgba(255,46,85,.25);
}
.btn-addcart:active{
    background:#e12045;
    transform:translateY(1px);
}
/* màu hết hàng */
.color-card.disabled,
.size-card.disabled {
    opacity: .5;
    border-style: dashed;
    cursor: not-allowed;
    pointer-events: none; /* chặn click */
    position: relative;
}

.color-card.disabled::after,
.size-card.disabled::after {
    content: "Hết";
    position: absolute;
    right: -10px;
    top: 90%;
    transform: translateY(-50%);
    font-size: 12px;
    background: #eee;
    color: #ff2e55;
    padding: 0px 1px;
    border-radius: 999px;
    font-weight: bold;
}

/* thumb mờ xám nhẹ */
.color-card.disabled .thumb,
.size-card.disabled .color-option-thumb {
    filter: grayscale(1);
}


.mini-cart {
    max-width: 85%;
    max-height: max-content;
}

.miniCartItems{
    overflow: auto;
    max-height: 300px;
}

.mini-cart .offcanvas-header {
    border-bottom: 1px solid #eee;
    padding: 5px 18px;
}

.mini-cart-item {
    display: flex;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px dashed #eee;
}

.mini-cart-thumb {
    width: 54px;
    height: 54px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: #f5f5f5;
}

.mini-cart-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mini-cart-title {
    font-size: 13px;
    font-weight: 600;
}

.mini-cart-meta {
    font-size: 11px;
    color: #777;
}

.mini-cart-price {
    font-size: 13px;
    font-weight: 600;
    color: #ff2e55;
}

.mini-cart-qty {
    font-size: 12px;
    color: #666;
}
.mini-cart-item2{
    display:flex;
    gap:10px;
    padding:8px 0;
    padding-right: 10px;
}

.mini-cart-divider{
    margin:0;
    border-top:1px solid #eee;
}

/* ảnh + badge giảm giá */
.mini-cart-thumb-wrap{
    position:relative;
    width:68px;
    height:68px;
    flex-shrink:0;
    border-radius:8px;
    overflow:hidden;
    background:#f5f5f5;
}

.mini-cart-thumb-img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.mini-cart-sale{
    position:absolute;
    top:0;
    left:0;
    background:#ff2e55;
    color:#fff;
    font-size:10px;
    font-weight:700;
    padding:2px 6px;
}

/* thông tin bên phải */
.mini-cart-info{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.mini-cart-title-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:6px;
}

.mini-cart-name{
    font-size:13px;
    font-weight:600;
}

.mini-cart-remove{
    border:none;
    background:none;
    padding:0;
    font-size:16px;
    color:#999;
    cursor:pointer;
}

.mini-cart-remove:hover{
    color:#ff2e55;
}

/* dòng số lượng */
.mini-cart-qty-row{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:12px;
}

.mini-cart-qty-label{
    color:#666;
}

.mini-cart-qty-control{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.mini-cart-qty-btn{
    width:22px;
    height:22px;
    border-radius:50%;
    border:1px solid #ddd;
    background:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    cursor:pointer;
    padding:0;
}

.mini-cart-qty-value{
    min-width:18px;
    text-align:center;
    font-weight:600;
}

/* dòng giá */
.mini-cart-price-row{
    font-size:13px;
}

.mini-cart-price-old{
    color:#aaa;
    text-decoration:line-through;
    margin-right:6px;
}

.mini-cart-price-new{
    color:#ff2e55;
    font-weight:700;
}

.offcanvas.offcanvas-end, .offcanvas-backdrop{
    top: 53px !important;
}




.service-strip{
    display:flex;
    gap:10px;
    background:#fff;
    border:1px solid #eee;
    border-radius:10px;
    padding:10px 12px;
    align-items:stretch;
}

.service-item{
    flex:1;
    display:flex;
    gap:8px;
    align-items:center;
    padding:6px 8px;
    border-radius:8px;
    transition:.2s ease;
}

.service-item:hover{
    background:#f7f9fc;
}

.service-ic{
    width:34px;height:34px;
    display:grid;place-items:center;
    border-radius:8px;
    background:#f0f4ff;
    color:#1f2a44;
    flex:0 0 34px;
}
.service-ic svg{ width:20px;height:20px; }

.service-title{
    font-size:13.5px;
    font-weight:700;
    color:#111827;
    line-height:1.2;
}
.service-sub{
    font-size:12px;
    color:#6b7280;
    line-height:1.2;
    margin-top:2px;
}
.service-title.free_transport,
.service-ic.free_transport
{
    color: var(--danger);
    font-weight: bold;
}








/* ===== FLOAT CONTACT WIDGET ===== */
.float-contact {
    position: fixed;
    right: 14px;
    bottom: 92px;            /* chừa bottom bar */
    z-index: 1000;
}

.float-contact .fab {
    width: 54px;
    height: 54px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 18px rgba(0,0,0,.14);
    border: none;
    cursor: pointer;
    user-select: none;
    transition: transform .2s ease, opacity .2s ease;
    background: #fff;
}

.float-contact .fab img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.float-contact .fab.dark {
    background: #111827;
}
.float-contact .fab.dark img { filter: invert(1); }

/* Nhóm nút con */
.float-contact .fab-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 10px;
    align-items: center;

    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: all .25s ease;
}

.float-contact.open .fab-group {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

/* Nút con có pulse nhẹ */
@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(255,46,85,.35); }
    70% { box-shadow: 0 0 0 12px rgba(255,46,85,0); }
    100% { box-shadow: 0 0 0 0 rgba(255,46,85,0); }
}
.float-contact .fab.pulse {
    animation: pulse 2.2s infinite;
}

/* Nút X đóng */
.float-contact .fab.close-btn {
    background: #111827;
    color: #fff;
    font-size: 20px;
    line-height: 1;
}
.cart-notice{
    position: fixed;
    left: 50%;
    top: 30%;
    transform: translateX(-50%) translateY(20px);
    padding: 8px 14px;
    background: rgb(255 0 0 / 75%);
    color: #fff;
    font-size: 13px;
    border-radius: 999px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
    z-index: 9999;
    width: 80%;
    text-align: center;
    max-width: 300px;
}

.cart-notice--show{
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* order summary */
.order-summary-title{
    background:#f7f7f7;
    text-transform:uppercase;
    font-weight:700;
    font-size:13px;
    padding:6px 12px;
    border-top:1px solid #e5e5e5;
    border-bottom:1px solid #e5e5e5;
    text-align:center;
}
.order-summary-table td{
    padding:4px 12px;
    font-size:13px;
    position: relative;
}
.order-summary-table td .badge{
    padding: 5px 6px;
}
.badge-discount{
    background:#00a76f;
    font-size:11px;
}

/* form */
.checkout-panel{
    margin:20px auto;
    background:#fff;
    border-radius:10px;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
    overflow:hidden;
}
.checkout-title{
    background:#f7f7f7;
    text-transform:uppercase;
    font-weight:700;
    font-size:13px;
    padding:8px 12px;
    border-bottom:1px solid #e5e5e5;
}
.checkout-title .btn-close-panel{
    border:none;
    background:transparent;
    font-size:16px;
    line-height:1;
}
.checkout-form-card{
    border-radius:8px;
    border:1px solid #e0e0e0;
    padding:12px;
    margin:12px;
    margin-top:16px;
    margin-bottom:16px;
}
.checkout-form-title{
    text-transform:uppercase;
    font-weight:700;
    font-size:13px;
    margin-bottom:8px;
}
.checkout-btns{
    padding:0 12px 12px;
    display:flex;
    justify-content:flex-end;
    gap:8px;
}
.pkcp-parent-container{
    z-index: 1000 !important;
}
.checkoutModal .box-btn, .checkoutModal .voucher-box{
    display: none !important;
}
.close-order{
    position: absolute;
    left: 10px;
    bottom: 10px;
}
.form-control.error, .form-check-input.error  {
    border-color: red;
}
.form-check-input.error + label {
    color: red;
}
/* Thanh toán */
.pay-method-group{
    border-top:1px solid #eee;
    margin-top:8px;
    padding: 0px 10px;
    padding-top:8px;
}

.pay-method-title{
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    margin-bottom:4px;
}

.pay-option{
    display:flex;
    align-items:flex-start;
    gap:8px;
    padding:6px 8px;
    border-radius:8px;
    border:1px solid #e0e0e0;
    background:#fff;
    font-size:12px;
    cursor:pointer;
    margin-bottom:4px;
}

.pay-option:hover{
    border-color:#ff2e55;
}

.pay-option input{
    display:none;
}

.pay-check{
    width:16px;
    height:16px;
    border-radius:50%;
    border:2px solid #bbb;
    margin-top:3px;
    flex-shrink:0;
    position:relative;
}

/* trạng thái được chọn */
.pay-option input:checked + .pay-check{
    border-color:#ff2e55;
}

.pay-option input + .pay-check::after{
    content:"";
    position:absolute;
    inset:3px;
    border-radius:50%;
}

.pay-option input:checked + .pay-check::after{
    background:#ff2e55;
}

.pay-option input ~ .pay-body{
    padding-left:6px;
}

.pay-option input ~ .pay-body{
    border-left:2px solid #fff;
}
.pay-option input:checked ~ .pay-body{
    border-left:2px solid #ff2e55;
}

.pay-name{
    font-weight:600;
    margin-bottom:1px;
}

.pay-desc{
    font-size:11px;
    color:#777;
}



.order-success-modal .modal-content{
    border-radius:10px;
    overflow:hidden;
    padding:0;
}
.order-success-header{
    padding:10px 16px;
    font-weight:700;
    text-transform:uppercase;
    font-size:16px;
    border-bottom:1px solid #e5e5e5;
}
.order-success-body{
    padding:12px 16px 16px;
    background:#fafafa;
}
.order-success-body h6{
    font-size:15px;
    font-weight:600;
    text-align:center;
    margin-bottom:4px;
}
.order-success-body p.thank-text{
    font-size:13px;
    text-align:center;
    margin-bottom:12px;
}
.order-info-table td{
    padding:4px 10px;
    font-size:13px;
    background:#f3f3f3;
}
.order-info-table td:first-child{
    width:160px;
    font-weight:600;
}
.order-info-table tr+tr td{
    border-top:1px solid #e0e0e0;
}

/* list sản phẩm */
.order-product-title{
    margin-top:12px;
    font-size:12px;
    text-transform:uppercase;
    font-weight:700;
    padding:4px 10px;
    background:#f3f3f3;
    border-top:1px solid #e0e0e0;
    border-bottom:1px solid #e0e0e0;
}
.order-item{
    display:flex;
    gap:8px;
    padding:8px 10px;
    background:#f7f7f7;
}
.order-item + .order-item{
    border-top:1px solid #e6e6e6;
}
.order-item-thumb{
    width:60px;
    height:60px;
    border-radius:4px;
    overflow:hidden;
    flex-shrink:0;
}
.order-item-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.order-item-info{
    flex:1;
    font-size:13px;
}
.order-item-name{
    font-weight:600;
    margin-bottom:2px;
}
.order-item-qty{
    font-size:12px;
}
.order-item-price-old{
    font-size:12px;
    text-decoration:line-through;
    color:#999;
    margin-right:6px;
}
.order-item-price-new{
    color:#ff2e55;
    font-weight:700;
    font-size:13px;
}

/* tổng tiền */
.order-total-table td{
    padding:4px 10px;
    font-size:13px;
    background:#f3f3f3;
}
.order-total-table tr+tr td{
    border-top:1px solid #e0e0e0;
}
.order-total-table td:first-child{
    width:160px;
    position: relative;
}
.order-total-label-strong{
    font-weight:700;
}
.order-total-grand{
    color:#d60000;
    font-weight:800;
    font-size:16px;
}

.order-success-footer{
    padding:10px 16px 14px;
}
.btn-bill{
    padding: 3px 15px;
    color: #fff;
}
/* overlay full màn hình */
.loading-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}

/* trạng thái đang hiện */
.loading-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

/* box trắng giữa màn hình */
.loading-box {
    background: #fff;
    padding: 16px 20px;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 220px;
}

/* vòng xoay */
.loading-spinner {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 3px solid #eee;
    border-top-color: #007bff;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.loading-text {
    font-size: 14px;
}
.order-qr-wrapper{
    page-break-inside: avoid;
    break-inside: avoid;
}
.btn-order-footer {
    position: fixed;
    left: 7px;
    bottom: 9px;
    z-index: 11;
}
.btn-order-bottom{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 18px;
    border-radius:999px;
    border:none;
    background:#0a58ca;
    color:#fff;
    font-weight:600;
    cursor:pointer;
}
.btn-order {
    width: 120px;
}

/* hiệu ứng chớp chớp */
.btn-order-blink{
    animation: orderBlink 1s ease-in-out infinite;
}

@keyframes orderBlink{
    0%{
        transform: translateY(0);
        box-shadow: 0 0 0 0 rgb(9, 65, 147);
        filter: brightness(1);
    }
    50%{
        transform: translateY(-1px);
        box-shadow: 0 0 12px 4px rgb(9, 35, 73);
        filter: brightness(1.1);
    }
    100%{
        transform: translateY(0);
        box-shadow: 0 0 0 0 rgba(255,44,91,0.0);
        filter: brightness(1);
    }
}
.frmAddCart.disable{
    display: none;
}
.cart-badge-bottom {
    position: absolute;
    left: 12px;
    top: -10px;
    background: #ff2e55;
    display: block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 12px;
}






.home-section, .banner{
    padding:10px;
    max-width: 480px;
    margin: 0 auto;
}
.section-title{
    font-size: 16px;
    font-weight: 700;
    margin: 0;
    text-transform: uppercase;
    padding: 10px;
    background: rgb(209 209 209 / 59%);
    color: #000000;
    margin-bottom: 10px;
}

/* slider ngang */
.product-slider{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:0 12px 8px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
}

/* thẻ sản phẩm: chiếm ~40% chiều rộng → 2.5 sp */
.product-card{
    flex:0 0 40%;          /* 100 / 2.5 ~= 40 → 2.5 card */
    max-width:40%;
    background:#fff;
    border-radius:10px;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    scroll-snap-align:start;
}

/* link bọc ngoài & trong title */
.product-link{
    display:block;
    color:#222;
    text-decoration:none;
}
.product-link:hover{
    text-decoration:underline;
}

/* HÌNH */
.product-thumb{
    position:relative;
    width:100%;
    padding-top:125%;           /* vuông */
    background:#f5f5f5;
    overflow:hidden;
}
article.product-card.item-long .product-thumb {
    padding-top: 160%;
}

.product-thumb img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

/* BADGE -% & NEW */
.badge{
    position:absolute;
    top: 3px;
    padding: 2px 2px;
    /* border-radius:999px; */
    font-size:10px;
    font-weight:600;
    color:#fff;
}
.badge-sale{
    left: 3px;
    background: #ff0023;         /* nền hồng nhạt */
    color: #ffffff;
}
.badge-new{
    right:6px;
    background:#1abc9c;
}

/* THÂN DƯỚI */
.product-body{
    padding:6px 8px 8px;
}

/* TIÊU ĐỀ: tên + màu */
.product-title{
    font-size:13px;
    font-weight:600;
    line-height:1.3;
    margin-bottom:4px;
}
.product-title .product-link{
    color:#0055cc;              /* chữ xanh giống hình bạn gửi */
}

/* HÀNG GIÁ */
.product-price-row{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:14px;
}

.price-sale{
    color:#e60023;
    font-weight:700;
}

.price-old{
    color: #999;
    text-decoration: line-through;
    padding-top: 13px;
    font-size: 11px;
}

.price-percent{
    font-size:11px;
    font-weight:600;
    color:#e60023;
}



/* Lớp phủ mờ */
.policy-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.35);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:99944444;
}

/* Hộp modal */
.policy-dialog{
    background:#fff;
    max-width:720px;
    width:95%;
    border-radius:8px;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    display:flex;
    flex-direction:column;
    max-height:90vh;
}

/* Header */
.policy-header{
    padding:10px 16px;
    border-bottom:1px solid #e5e5e5;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.policy-header h2{
    font-size:18px;
    font-weight:700;
}
.policy-close{
    border:none;
    background:transparent;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}

/* Body cuộn được */
.policy-body{
    padding:14px 16px 4px;
    font-size:14px;
    color:#444;
    line-height:1.6;
    overflow:auto;
}
.policy-body h3{
    font-size:15px;
    font-weight:700;
    margin:10px 0 4px;
}
.policy-body ul{
    padding-left:20px;
    margin:4px 0 8px;
}

/* Footer */
.policy-footer{
    padding:10px 16px 12px;
    border-top:1px solid #e5e5e5;
    text-align:right;
}
.policy-btn{
    min-width:90px;
    padding:6px 14px;
    border-radius:4px;
    border:none;
    background:#6c757d;
    color:#fff;
    font-size:13px;
    cursor:pointer;
}
.policy-btn:hover{
    background:#5a6268;
}

/* Mobile */
@media (max-width:480px){
    .policy-header h2{
        font-size:16px;
    }
    .policy-dialog{
        width:96%;
    }
}


.site-footer{
    border-top:1px solid #e5e5e5;
    background:#f9fbff;
    margin-top:20px;
    font-size:13px;
    color:#444;
}

.footer-container{
    max-width:1100px;
    margin:0 auto;
    padding:12px 12px 14px;
}

.footer-columns{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    justify-content:center;
}

.footer-col{
    min-width:200px;
}

.footer-col h4{
    font-size:14px;
    font-weight:700;
    margin-bottom:6px;
    text-transform:uppercase;
}

.footer-col p{
    margin:2px 0;
}

.site-footer a{
    color:#2955d9;
    text-decoration:none;
}

.site-footer a:hover{
    text-decoration:underline;
}

.footer-bottom{
    text-align:center;
    margin-top:8px;
    font-size:12px;
    color:#666;
}
.fab-group {
    position: fixed;
    right: 16px;
    bottom: 15px;
    width: 45px;
}

.fab-group img {
    width: 100%;
    border-radius: 100%;
}

.fab-group .fab  {
    padding-bottom: 10px;
    display: block;
}
}

.btn-copy{
    margin-left:6px;
    width:26px;
    height:26px;
    padding:0;
    border-radius:50%;
    border:1px solid #ddd;
    background:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.btn-copy:hover{
    background:#f3f4ff;
    border-color:#b0b5ff;
}

/* hình icon copy: 2 tờ giấy chồng nhau */
.icon-copy{
    position:relative;
    width:14px;
    height:14px;
    border:2px solid #555;
    border-radius:3px;
    box-sizing:border-box;
    background: #bcd1c8;
}

.icon-copy::before{
    content:"";
    position:absolute;
    width:10px;
    height:10px;
    border:2px solid #555;
    border-radius:3px;
    top:-4px;
    left:3px;
    background:#fff;
}

.policy-cards{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    margin:16px 10px;
}
.policy-cards.disable {
    display: none;
}

.policy-card{
    flex:1 1 260px;
    border:1px solid #e2e6f0;
    border-radius:10px;
    padding:14px 16px;
    background:#fff;
    box-shadow:0 2px 6px rgba(0,0,0,.03);
}

.policy-card h3{
    font-size:14px;
    font-weight:700;
    color:#0f3b82;
    text-transform:uppercase;
    line-height:1.4;
    margin-bottom:8px;
}

.policy-card ul{
    margin:0;
    padding-left:18px;
    font-size:13px;
    color:#333;
    line-height:1.6;
}
.review-section{
    margin:16px 0;
}

.review-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:8px;
}
.review-header h3{
    font-size:15px;
    font-weight:700;
}
.review-see-all{
    font-size:13px;
    color:#1a73e8;
    text-decoration:none;
}

/* LIST */
.review-list{
    display:flex;
    flex-direction:column;
    gap:8px;

}
.review-section .review-list{
    max-height: 300px;
    overflow: auto;
}
.rv-item{
    padding:10px 12px;
    border-radius:8px;
    background:#fff;
    box-shadow:0 1px 4px rgba(0,0,0,.06);
    font-size:13px;
    margin-bottom:8px;
}

/* top */
.rv-top{
    display:flex;
    gap:8px;
    margin-bottom:4px;
}
.rv-avatar img{
    width:36px;
    height:36px;
    border-radius:50%;
    object-fit:cover;
}
.rv-top-info{
    flex:1;
}
.rv-name{
    font-weight:600;
}
.rv-stars{
    font-size:12px;
    color:#ff9800;
}
.rv-meta{
    font-size:11px;
    color:#777;
}

/* text */
.rv-text{
    margin:4px 0 6px;
    line-height:1.5;
}

/* media row */
.rv-media-row{
    display:flex;
    gap:4px;
    margin-bottom:8px;
    flex-wrap:wrap;
}
.rv-media-thumb{
    position:relative;
    padding:0;
    border:none;
    background:transparent;
    cursor:pointer;
}
.rv-media-thumb img{
    width:80px;
    height:80px;
    border-radius:4px;
    object-fit:cover;
}

/* badge video: icon + thời lượng */
.rv-media-badge{
    position:absolute;
    left:2px;
    bottom:2px;
    display:flex;
    align-items:center;
    gap:2px;
    padding:1px 4px;
    background:rgba(0,0,0,.6);
    color:#fff;
    border-radius:3px;
    font-size:10px;
}
.rv-media-icon{
    font-size:10px;
    line-height:1;
}
.rv-media-duration{
    font-size:10px;
}

/* sản phẩm đã mua */
.rv-product{
    display:flex;
    align-items:center;
    gap:6px;
    padding:6px 8px;
    border-radius:4px;
    background:#fafafa;
    text-decoration:none;
    color:#222;
}
.rv-product-thumb img{
    width:40px;
    height:40px;
    border-radius:3px;
    object-fit:cover;
}
.rv-product-info{
    flex:1;
}
.rv-product-name{
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.rv-product-variant{
    font-size:11px;
    color:#777;
}
/* overlay */
.rv-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:999;
}

/* hộp popup */
.rv-dialog{
    background:#fff;
    width:95%;
    max-width:700px;
    max-height:90vh;
    border-radius:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.3);
    display:flex;
    flex-direction:column;
}

/* header */
.rv-dialog-header{
    padding:10px 14px;
    border-bottom:1px solid #eee;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.rv-dialog-header h3{
    font-size:16px;
    font-weight:700;
}
.rv-dialog-close{
    border:none;
    background:transparent;
    font-size:22px;
    cursor:pointer;
}

/* body: list cuộn */
.rv-dialog-body{
    padding:8px 10px 0;
    overflow:auto;
}

/* dùng lại .rv-item css cũ */

.rv-popup-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}

/* footer */
.rv-dialog-footer{
    padding:8px 12px 10px;
    border-top:1px solid #eee;
    text-align:center;
}
.rv-load-more{
    min-width:150px;
    padding:6px 14px;
    border-radius:20px;
    border:1px solid #d0d4e4;
    background:#f7f8ff;
    font-size:13px;
    cursor:pointer;
}
.rv-load-more:hover{
    background:#e6e8ff;
}

a.btn-show-bangsize {
    position: absolute;
    bottom: 80px;
    z-index: 18;
    font-size: 15px;
    background: #dc3746;
    border: 1px solid #ffffff;
    color: #fff;
    padding: 2px 4px;
    left: -110px;
}

.video-size {
    position: relative;
}
a.btn-playvideo{
    position: absolute;
    height: 100%;
    background-size: 100px;
    width: 100%;
    background-image: url(../img/play-btn.svg);
    background-repeat: no-repeat;
    background-position: center;
    z-index: 2;
    background-color: #0a0a0a17;
}
a.btnplayvideo{
    position: absolute;
    height: 100%;
    background-size: 400px;
    width: 100%;
    background-image: url(../img/bghuongdan.png);
    background-repeat: no-repeat;
    background-position: center;
    z-index: 2;
    background-color: #0a0a0a17;
}
#video1{
    height: 300px !important;
}
/* Link "Bảng size" */
.size-guide-link{
    display:inline-block;
    font-size:14px;
    color:#0d6efd;
    text-decoration:none;
    position:relative;
    padding-bottom:2px;
}
.size-guide-link:after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height:1px; background:currentColor; opacity:.6;
}
.size-guide-link:hover{ opacity:.9; }
.freeship{
    color: var(--danger) !important;
    font-weight: bold;
    text-transform: uppercase;
}
.session-other .product-card{
    flex: none;
    max-width: none;
    width: 46%;
    margin: 2%;
    padding: 0;
}
.phone{
    color: #ff2e55;
}
#sizeGuideModal .modal-footer{
    display: block !important;
}
.checkout-btns button.btn.btn-primary.btn-sm {
    font-size: 25px;
    margin-right: 4px;
    padding-left: 15px;
    padding-right: 15px;
    text-transform: uppercase;
}



/* Mobile: xếp dọc, full width */
@media (max-width:600px){
    .policy-card{
        flex:1 1 100%;
    }
}


/* mobile: căn giữa các cột */
@media (max-width:600px){
    .footer-col{
        text-align:center;
    }
}

/* Desktop: cho hiển thị nhiều card hơn nhưng vẫn kéo được */
@media (min-width: 768px){
    .product-card{
        flex:0 0 30%;       /* thấy khoảng 4 card trên màn to */
        max-width:30%;
    }
}

@media only screen and (min-width: 1000px) {
    .color-card:hover {
        border-color: #ff2e55;
    }
}


/* Mobile tự xuống dòng */
@media (max-width: 576px){
    .service-strip{ flex-direction:column; }
    .service-item{ padding:8px; }
}


@media (max-width: 360px) {
    .product-media .carousel-item {
        height: 420px;
    }
}
@media only screen and (min-width: 600px) {...}
