{"id":4,"date":"2026-09-29T03:36:33","date_gmt":"2026-09-29T03:36:33","guid":{"rendered":"https:\/\/quyenru.shop\/?page_id=4"},"modified":"2026-09-29T04:27:19","modified_gmt":"2026-09-29T04:27:19","slug":"home","status":"publish","type":"page","link":"https:\/\/quyenru.shop\/","title":{"rendered":"Quyenshop &#8211; \u0110\u1ed3 Ng\u1ee7 &#038; N\u1ed9i Y G\u1ee3i C\u1ea3m"},"content":{"rendered":"<p><!-- Hero Banner Section --><\/p>\n<div class=\"quyenru-hero-banner\" style=\"background: linear-gradient(135deg, #18181b 0%, #27272a 50%, #4c0519 100%); color: #ffffff; padding: 60px 20px 50px; border-radius: 16px; margin: 20px auto 40px; max-width: 1240px; position: relative; overflow: hidden; box-shadow: 0 20px 40px -15px rgba(0,0,0,0.5);\">\n<div style=\"position: absolute; right: -50px; top: -50px; width: 320px; height: 320px; background: radial-gradient(circle, rgba(225, 29, 72, 0.25) 0%, rgba(0,0,0,0) 70%); border-radius: 50%; pointer-events: none;\"><\/div>\n<div style=\"max-width: 850px; margin: 0 auto; text-align: center; position: relative; z-index: 2;\">\n        <span style=\"display: inline-block; background: rgba(225, 29, 72, 0.2); border: 1px solid rgba(244, 63, 94, 0.4); color: #fda4af; padding: 6px 18px; border-radius: 9999px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px;\"><br \/>\n            \u2728 B\u1ed8 S\u01afU T\u1eacP N\u1ed8I Y &#038; V\u00c1Y NG\u1ee6 CAO C\u1ea4P 2026<br \/>\n        <\/span><\/p>\n<h1 style=\"color: #ffffff; font-size: clamp(28px, 4.5vw, 46px); font-weight: 800; line-height: 1.25; margin-bottom: 20px; text-wrap: balance; font-family: 'Be Vietnam Pro', sans-serif;\">\n            \u0110\u1ec9nh Cao Quy\u1ebfn R\u0169 &nbsp;\u2013&nbsp; Th\u1ee9c T\u1ec9nh M\u1ecdi Gi\u00e1c&nbsp;Quan<br \/>\n        <\/h1>\n<p style=\"color: #cbd5e1; font-size: clamp(15px, 2vw, 18px); line-height: 1.6; max-width: 680px; margin: 0 auto 30px; font-family: 'Be Vietnam Pro', sans-serif;\">\n            Tuy\u1ec3n ch\u1ecdn nh\u1eefng thi\u1ebft k\u1ebf v\u00e1y ng\u1ee7 l\u1ee5a satin ph\u1ed1i ren xuy\u00ean th\u1ea5u v\u00e0 bodysuit sexy t\u00f4n d\u00e1ng nh\u1ea5t tr\u00ean Shopee. S\u0103n voucher \u0111\u1ed9c quy\u1ec1n gi\u1ea3m \u0111\u1ebfn 50%.\n        <\/p>\n<div style=\"display: flex; justify-content: center; gap: 15px; flex-wrap: wrap;\">\n            <a href=\"#danh-sach-san-pham\" class=\"quyenru-btn-primary\" style=\"background: linear-gradient(135deg, #e11d48, #be123c); color: #ffffff !important; font-weight: 700; padding: 14px 32px; border-radius: 50px; text-decoration: none; font-size: 16px; box-shadow: 0 10px 25px rgba(225, 29, 72, 0.4); transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 8px;\"><br \/>\n                <span>\ud83d\udd25 Kh\u00e1m Ph\u00e1 Deal Hot H\u00f4m Nay<\/span><br \/>\n            <\/a><br \/>\n            <a href=\"https:\/\/shope.ee\/quyenru\" target=\"_blank\" class=\"quyenru-btn-shopee\" style=\"background: #ffffff; color: #ee4d2d !important; font-weight: 700; padding: 14px 30px; border-radius: 50px; text-decoration: none; font-size: 16px; box-shadow: 0 10px 25px rgba(0,0,0,0.2); transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 8px;\"><br \/>\n                <span>\ud83d\udecd\ufe0f V\u00e0o Shopee Mall<\/span><br \/>\n            <\/a>\n        <\/div>\n<\/p><\/div>\n<\/div>\n<p><!-- Trust & Benefits Bar --><\/p>\n<div class=\"quyenru-trust-bar\" style=\"max-width: 1240px; margin: 0 auto 40px; padding: 0 15px;\">\n<div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px;\">\n<div style=\"background: #ffffff; border: 1px solid #f1f5f9; padding: 20px; border-radius: 12px; display: flex; align-items: center; gap: 15px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);\">\n<div style=\"width: 48px; height: 48px; border-radius: 12px; background: #fff1f2; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;\">\ud83d\udee1\ufe0f<\/div>\n<div>\n<h4 style=\"margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0f172a; font-family: 'Be Vietnam Pro', sans-serif;\">Che T\u00ean 100% K\u00edn \u0110\u00e1o<\/h4>\n<p style=\"margin: 0; font-size: 13px; color: #64748b; font-family: 'Be Vietnam Pro', sans-serif;\">B\u1ea3o m\u1eadt tuy\u1ec7t \u0111\u1ed1i \u0111\u01a1n h\u00e0ng Shopee<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div style=\"background: #ffffff; border: 1px solid #f1f5f9; padding: 20px; border-radius: 12px; display: flex; align-items: center; gap: 15px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);\">\n<div style=\"width: 48px; height: 48px; border-radius: 12px; background: #fff7ed; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;\">\u26a1<\/div>\n<div>\n<h4 style=\"margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0f172a; font-family: 'Be Vietnam Pro', sans-serif;\">Deal \u0110\u1ed9c Quy\u1ec1n Shopee<\/h4>\n<p style=\"margin: 0; font-size: 13px; color: #64748b; font-family: 'Be Vietnam Pro', sans-serif;\">Gi\u1ea3m \u0111\u1ebfn 50% + Freeship 0\u0110<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div style=\"background: #ffffff; border: 1px solid #f1f5f9; padding: 20px; border-radius: 12px; display: flex; align-items: center; gap: 15px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);\">\n<div style=\"width: 48px; height: 48px; border-radius: 12px; background: #f0fdf4; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;\">\u2728<\/div>\n<div>\n<h4 style=\"margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0f172a; font-family: 'Be Vietnam Pro', sans-serif;\">Ch\u1ea5t Li\u1ec7u L\u1ee5a &#038; Ren Cao C\u1ea5p<\/h4>\n<p style=\"margin: 0; font-size: 13px; color: #64748b; font-family: 'Be Vietnam Pro', sans-serif;\">M\u1ec1m m\u1ecbn, \u00eam \u00e1i, n\u00e2ng niu l\u00e0n da<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div style=\"background: #ffffff; border: 1px solid #f1f5f9; padding: 20px; border-radius: 12px; display: flex; align-items: center; gap: 15px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);\">\n<div style=\"width: 48px; height: 48px; border-radius: 12px; background: #faf5ff; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;\">\ud83d\udcac<\/div>\n<div>\n<h4 style=\"margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0f172a; font-family: 'Be Vietnam Pro', sans-serif;\">T\u01b0 V\u1ea5n Ch\u1ecdn Size 24\/7<\/h4>\n<p style=\"margin: 0; font-size: 13px; color: #64748b; font-family: 'Be Vietnam Pro', sans-serif;\">Zalo h\u1ed7 tr\u1ee3 k\u00edn \u0111\u00e1o nhi\u1ec7t t\u00ecnh<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><!-- Product Section Anchor --><\/p>\n<div id=\"danh-sach-san-pham\" style=\"scroll-margin-top: 80px;\"><\/div>\n<p><!-- Affiliate Showcase Feed --><br \/>\n        <div class=\"ez-affiliater-container\" id=\"ez-aff-1432\">\n            <!-- CSS Styling -->\n            <style>\n                .ez-affiliater-container {\n                    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n                    max-width: 1200px;\n                    margin: 0 auto;\n                    padding: 20px 0;\n                }\n                .ez-aff-tabs {\n                    display: flex;\n                    justify-content: center;\n                    border-bottom: 2px solid #e2e8f0;\n                    margin-bottom: 30px;\n                    gap: 15px;\n                    flex-wrap: wrap;\n                }\n                .ez-aff-tab-btn {\n                    background: none;\n                    border: none;\n                    font-size: 16px;\n                    font-weight: 600;\n                    color: #64748b;\n                    padding: 12px 24px;\n                    cursor: pointer;\n                    position: relative;\n                    transition: all 0.3s ease;\n                    outline: none;\n                }\n                .ez-aff-tab-btn:hover {\n                    color: #3b82f6;\n                }\n                .ez-aff-tab-btn.active {\n                    color: #3b82f6;\n                }\n                .ez-aff-tab-btn.active::after {\n                    content: '';\n                    position: absolute;\n                    bottom: -2px;\n                    left: 0;\n                    width: 100%;\n                    height: 3px;\n                    background-color: #3b82f6;\n                    border-radius: 3px;\n                }\n                .ez-aff-tab-content {\n                    display: none;\n                    animation: fadeIn 0.4s ease-in-out;\n                }\n                .ez-aff-tab-content.active {\n                    display: block;\n                }\n                .ez-aff-grid {\n                    display: grid;\n                    grid-template-columns: repeat(4, 1fr);\n                    gap: 25px;\n                }\n                @media (max-width: 1024px) {\n                    .ez-aff-grid {\n                        grid-template-columns: repeat(4, 1fr);\n                    }\n                }\n                @media (max-width: 768px) {\n                    .ez-aff-grid {\n                        grid-template-columns: repeat(3, 1fr);\n                    }\n                }\n                .ez-aff-edit-shortcut {\n                    position: absolute;\n                    top: 50% !important;\n                    left: 50% !important;\n                    transform: translate(-50%, -50%);\n                    z-index: 10;\n                    background: rgba(0, 0, 0, 0.5);\n                    color: #fff !important;\n                    width: 34px;\n                    height: 34px;\n                    border-radius: 50%;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    text-decoration: none !important;\n                    opacity: 0;\n                    pointer-events: none;\n                    transition: opacity 0.2s ease-in-out, background-color 0.2s ease-in-out, transform 0.2s ease-in-out;\n                    box-shadow: 0 4px 6px rgba(0,0,0,0.15);\n                }\n                .ez-aff-card:hover .ez-aff-edit-shortcut,\n                .ez-video-card:hover .ez-aff-edit-shortcut,\n                .ez-aff-img-wrapper:hover .ez-aff-edit-shortcut,\n                .ez-video-cover-section:hover .ez-aff-edit-shortcut {\n                    opacity: 1;\n                    pointer-events: auto;\n                }\n                .ez-aff-edit-shortcut:hover {\n                    background: rgba(0, 0, 0, 0.8) !important;\n                    transform: translate(-50%, -50%);\n                    color: #fff !important;\n                }\n                .ez-aff-card {\n                    background: #ffffff;\n                    border: 1px solid #e2e8f0;\n                    border-radius: 12px;\n                    overflow: hidden;\n                    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n                    transition: transform 0.3s ease, box-shadow 0.3s ease;\n                    display: flex;\n                    flex-direction: column;\n                    width: 100%;\n                    margin-bottom: 0;\n                }\n                .ez-aff-card:hover {\n                    transform: translateY(-5px);\n                    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n                }\n                .ez-aff-img-wrapper {\n                    position: relative;\n                    padding-bottom: 100%; \/* square ratio *\/\n                    overflow: hidden;\n                    background: #ffffff;\n                }\n                .ez-aff-img-wrapper img {\n                    position: absolute !important;\n                    top: 0 !important;\n                    left: 0 !important;\n                    width: 100% !important;\n                    height: 100% !important;\n                    object-fit: contain !important;\n                    transition: transform 0.5s ease !important;\n                }\n                .ez-aff-img-wrapper img.ez-aff-crop-left {\n                    width: auto !important;\n                    height: 100% !important;\n                    max-width: none !important;\n                    max-height: none !important;\n                    top: 0 !important;\n                    left: 0 !important;\n                    object-fit: fill !important;\n                }\n                .ez-aff-info {\n                    padding: 15px;\n                    display: flex;\n                    flex-direction: column;\n                    flex-grow: 1;\n                }\n                .ez-aff-title {\n                    font-size: 15px;\n                    font-weight: 600;\n                    color: #1e293b;\n                    margin: 0 0 15px 0;\n                    line-height: 1.4;\n                    height: 42px;\n                    overflow: hidden;\n                    display: -webkit-box;\n                    -webkit-line-clamp: 2;\n                    -webkit-box-orient: vertical;\n                }\n                .ez-aff-buttons {\n                    margin-top: auto;\n                    display: flex;\n                    gap: 10px;\n                }\n                .ez-btn {\n                    text-decoration: none;\n                    text-align: center;\n                    font-size: 13px;\n                    font-weight: 600;\n                    padding: 8px 12px;\n                    border-radius: 6px;\n                    transition: all 0.2s ease;\n                    flex-grow: 1;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    gap: 5px;\n                }\n                .ez-btn-buy {\n                    background: linear-gradient(135deg, #ff8c00, #ff4500);\n                    color: #fff;\n                    box-shadow: 0 2px 4px rgba(255, 69, 0, 0.2);\n                }\n                .ez-btn-buy:hover {\n                    background: linear-gradient(135deg, #ff7b00, #e03d00);\n                    box-shadow: 0 4px 6px rgba(255, 69, 0, 0.3);\n                    color: #fff !important;\n                }\n                .ez-btn-review {\n                    background: #f1f5f9;\n                    color: #475569;\n                    border: 1px solid #e2e8f0;\n                    flex-grow: 0;\n                    flex-shrink: 0;\n                    width: 38px;\n                    padding: 8px 0;\n                }\n                .ez-btn-review:hover {\n                    background: #e2e8f0;\n                    color: #1e293b;\n                }\n                .ez-aff-empty {\n                    text-align: center;\n                    color: #94a3b8;\n                    padding: 40px 0;\n                    grid-column: 1 \/ -1;\n                }\n                @keyframes fadeIn {\n                    from { opacity: 0; transform: translateY(5px); }\n                    to { opacity: 1; transform: translateY(0); }\n                }\n                @media (max-width: 640px) {\n                    .ez-aff-tab-btn {\n                        padding: 8px 16px;\n                        font-size: 14px;\n                    }\n                    .ez-aff-grid {\n                        grid-template-columns: repeat(2, 1fr);\n                        gap: 15px;\n                    }\n                    .ez-aff-card {\n                        margin-bottom: 0;\n                    }\n                    .ez-aff-title {\n                        font-size: 13px;\n                        height: 36px;\n                        margin-bottom: 10px;\n                    }\n                    .ez-btn {\n                        padding: 6px 8px;\n                        font-size: 12px;\n                    }\n                    .ez-btn-review {\n                        width: 32px;\n                        padding: 6px 0;\n                    }\n                    .ez-aff-buttons {\n                        flex-direction: row;\n                        gap: 6px;\n                    }\n                }\n\n                \/* Video Review styling in ez_affiliates *\/\n                .ez-video-review-grid {\n                    display: grid;\n                    grid-template-columns: repeat(4, 1fr);\n                    gap: 20px;\n                }\n                @media (max-width: 1024px) {\n                    .ez-video-review-grid {\n                        grid-template-columns: repeat(4, 1fr);\n                    }\n                }\n                @media (max-width: 768px) {\n                    .ez-video-review-grid {\n                        grid-template-columns: repeat(3, 1fr);\n                    }\n                }\n                @media (max-width: 640px) {\n                    .ez-video-review-grid {\n                        grid-template-columns: repeat(2, 1fr);\n                        gap: 15px;\n                    }\n                    .ez-video-card {\n                        margin-bottom: 0;\n                    }\n                }\n                .ez-video-card {\n                    background: #fff;\n                    border-radius: 16px;\n                    overflow: hidden;\n                    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);\n                    transition: transform 0.3s ease, box-shadow 0.3s ease;\n                    display: flex;\n                    flex-direction: column;\n                    width: 100%;\n                    margin-bottom: 0;\n                }\n                .ez-video-card:hover {\n                    \/* Static card - no shift or extra shadow *\/\n                }\n                .ez-video-cover-section {\n                    position: relative;\n                    width: 100%;\n                    aspect-ratio: 9 \/ 16;\n                    overflow: hidden;\n                    background: #000;\n                }\n                .ez-video-player-wrapper {\n                    position: relative;\n                    width: 100%;\n                    height: 100%;\n                    cursor: pointer;\n                    background: #000;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    overflow: hidden;\n                }\n                .ez-video-cover-img {\n                    width: 100% !important;\n                    height: 100% !important;\n                    object-fit: cover !important;\n                    transition: transform 0.5s ease, filter 0.3s ease;\n                    border: none !important;\n                    padding: 0 !important;\n                    margin: 0 !important;\n                    box-shadow: none !important;\n                    border-radius: 0 !important;\n                    transform: scale(1.15); \/* Zoom in to crop out YouTube\/TikTok padded border\/bars *\/\n                }\n                .ez-video-cover-img.ez-video-hq-fallback {\n                    transform: scale(1.35) !important;\n                }\n                .ez-video-player-wrapper:hover .ez-video-cover-img {\n                    transform: scale(1.15);\n                    filter: brightness(0.85);\n                }\n                .ez-video-player-wrapper:hover .ez-video-cover-img.ez-video-hq-fallback {\n                    transform: scale(1.35) !important;\n                    filter: brightness(0.85);\n                }\n                .ez-video-play-btn {\n                    position: absolute;\n                    width: 60px;\n                    height: 60px;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    z-index: 2;\n                    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35));\n                    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n                    box-sizing: border-box;\n                    pointer-events: none; \/* Let click event pass straight through to wrapper *\/\n                }\n                .ez-video-play-btn svg {\n                    display: block;\n                    width: 100%;\n                    height: 100%;\n                }\n                .ez-video-player-wrapper:hover .ez-video-play-btn {\n                    \/* Keep play button static on hover *\/\n                }\n                .ez-video-player-wrapper.playing {\n                    cursor: default;\n                }\n                .ez-video-player-wrapper iframe,\n                .ez-video-player-wrapper video {\n                    position: absolute;\n                    top: 0;\n                    left: 0;\n                    width: 100%;\n                    height: 100%;\n                    border: none;\n                }\n                .ez-video-player-wrapper.ez-pip-active {\n                    position: fixed !important;\n                    bottom: 20px !important;\n                    left: 20px !important;\n                    width: 250px !important;\n                    height: 444px !important;\n                    padding-bottom: 0 !important;\n                    z-index: 99999 !important;\n                    box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important;\n                    border-radius: 12px !important;\n                    border: 2px solid #ef4444 !important;\n                    overflow: hidden !important;\n                    background: #000 !important;\n                    animation: ez-pip-slide-in 0.3s ease-out !important;\n                    cursor: move !important;\n                }\n                .ez-pip-close {\n                    position: absolute !important;\n                    top: 10px !important;\n                    right: 10px !important;\n                    z-index: 100000 !important;\n                    background: rgba(0,0,0,0.6) !important;\n                    color: white !important;\n                    border: none !important;\n                    border-radius: 50% !important;\n                    width: 28px !important;\n                    height: 28px !important;\n                    font-size: 20px !important;\n                    font-weight: bold !important;\n                    cursor: pointer !important;\n                    display: flex !important;\n                    align-items: center !important;\n                    justify-content: center !important;\n                    line-height: 1 !important;\n                    transition: background 0.2s !important;\n                }\n                .ez-pip-close:hover {\n                    background: rgba(0,0,0,0.85) !important;\n                }\n                @keyframes ez-pip-slide-in {\n                    from { transform: translateY(100px); opacity: 0; }\n                    to { transform: translateY(0); opacity: 1; }\n                }\n                .ez-video-product-link-btn {\n                    padding: 12px;\n                    display: flex;\n                    align-items: center;\n                    gap: 10px;\n                    border-top: 1px solid #f1f5f9;\n                    text-decoration: none;\n                    color: #1e293b;\n                    background: #fff;\n                    transition: background-color 0.2s, color 0.2s;\n                    height: 97px;\n                    box-sizing: border-box;\n                }\n                .ez-video-products-list {\n                    position: relative;\n                    height: 97px;\n                    overflow: hidden;\n                    background: #fff;\n                    border-top: 1px solid #f1f5f9;\n                }\n                @media (max-width: 640px) {\n                    .ez-video-products-list {\n                        height: 73px;\n                    }\n                }\n                .ez-video-slide {\n                    position: absolute;\n                    top: 0;\n                    left: 0;\n                    width: 100%;\n                    height: 100%;\n                    display: flex !important;\n                    align-items: center;\n                    opacity: 0;\n                    pointer-events: none;\n                    transition: opacity 0.3s ease;\n                    border-top: none !important;\n                    padding-right: 40px !important;\n                    box-sizing: border-box;\n                }\n                .ez-video-slide.active {\n                    opacity: 1;\n                    pointer-events: auto;\n                }\n                .ez-video-slider-nav button:hover {\n                    background: rgba(0,0,0,0.1) !important;\n                    color: #ef4444 !important;\n                }\n                .ez-video-product-thumb-wrapper {\n                    width: 72px;\n                    height: 72px;\n                    border-radius: 8px;\n                    overflow: hidden;\n                    position: relative;\n                    flex-shrink: 0;\n                    background: #ffffff;\n                }\n                .ez-video-product-thumb {\n                    position: absolute;\n                    top: 0;\n                    left: 0;\n                    width: 100% !important;\n                    height: 100% !important;\n                    object-fit: contain !important;\n                }\n                .ez-video-product-thumb.ez-aff-crop-left {\n                    width: auto !important;\n                    height: 100% !important;\n                    max-width: none !important;\n                    max-height: none !important;\n                    top: 0 !important;\n                    left: 0 !important;\n                    object-fit: fill !important;\n                }\n                .ez-video-product-info {\n                    flex-grow: 1;\n                    min-width: 0;\n                }\n                .ez-video-product-title {\n                    font-size: 13px;\n                    font-weight: 600;\n                    line-height: 1.4;\n                    color: #1e293b;\n                    margin: 0;\n                    display: -webkit-box;\n                    -webkit-line-clamp: 3;\n                    -webkit-box-orient: vertical;\n                    overflow: hidden;\n                    text-overflow: ellipsis;\n                }\n                .ez-video-product-link-btn svg {\n                    flex-shrink: 0;\n                    transition: transform 0.2s;\n                    color: #64748b;\n                }\n                .ez-video-product-link-btn:hover {\n                    background-color: #f8fafc;\n                    color: #ef4444;\n                }\n                .ez-video-product-link-btn:hover .ez-video-product-title {\n                    color: #ef4444;\n                }\n                .ez-video-product-link-btn:hover svg {\n                    transform: translate(2px, -2px);\n                    color: #ef4444;\n                }\n                \n                \/* Overlay Styles *\/\n                .ez-video-overlay-info {\n                    position: absolute;\n                    top: 0;\n                    left: 0;\n                    right: 0;\n                    padding: 12px;\n                    background: linear-gradient(to bottom, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 100%);\n                    display: flex;\n                    gap: 8px;\n                    align-items: flex-start;\n                    z-index: 3;\n                    pointer-events: none;\n                    text-align: left;\n                }\n                .ez-video-overlay-logo {\n                    width: 32px !important;\n                    height: 32px !important;\n                    border-radius: 50% !important;\n                    object-fit: cover !important;\n                    border: 1.5px solid rgba(255,255,255,0.9) !important;\n                    flex-shrink: 0 !important;\n                    box-shadow: 0 2px 4px rgba(0,0,0,0.25) !important;\n                }\n                .ez-video-overlay-text {\n                    display: flex;\n                    flex-direction: column;\n                    min-width: 0;\n                    flex-grow: 1;\n                }\n                .ez-video-overlay-title {\n                    color: #ffffff;\n                    font-size: 13px;\n                    font-weight: 700;\n                    line-height: 1.3;\n                    margin: 0 0 2px 0;\n                    text-shadow: 0 1px 3px rgba(0,0,0,0.8);\n                    display: -webkit-box;\n                    -webkit-line-clamp: 2;\n                    -webkit-box-orient: vertical;\n                    overflow: hidden;\n                }\n                .ez-video-overlay-channel {\n                    color: rgba(255,255,255,0.85);\n                    font-size: 11px;\n                    font-weight: 500;\n                    text-shadow: 0 1px 2px rgba(0,0,0,0.8);\n                    white-space: nowrap;\n                    overflow: hidden;\n                    text-overflow: ellipsis;\n                }\n\n                @media (max-width: 640px) {\n                    .ez-video-review-grid {\n                        grid-template-columns: repeat(2, 1fr);\n                        gap: 12px;\n                    }\n                    .ez-video-card {\n                        border-radius: 12px;\n                    }\n                    .ez-video-product-link-btn {\n                        padding: 8px;\n                        font-size: 11px;\n                        height: 73px;\n                    }\n                    .ez-video-product-thumb-wrapper {\n                        width: 56px;\n                        height: 56px;\n                    }\n                    .ez-video-product-title {\n                        font-size: 11px;\n                        -webkit-line-clamp: 3;\n                    }\n                }\n\n                \/* Load More Button Styles *\/\n                .ez-aff-load-more-wrapper {\n                    text-align: center;\n                    margin-top: 30px;\n                    margin-bottom: 10px;\n                    width: 100%;\n                    grid-column: 1 \/ -1;\n                }\n                .ez-aff-load-more-btn {\n                    background: transparent;\n                    color: #64748b;\n                    border: none;\n                    padding: 8px 16px;\n                    font-size: 13px;\n                    font-weight: 500;\n                    border-radius: 0;\n                    cursor: default;\n                    box-shadow: none;\n                    display: inline-flex;\n                    align-items: center;\n                    justify-content: center;\n                    gap: 8px;\n                    outline: none;\n                    pointer-events: none;\n                    width: 100%;\n                    min-height: 20px;\n                }\n                .ez-aff-load-more-btn.loading {\n                    color: #ff5722;\n                }\n            <\/style>\n\n                            <!-- Tabs Navigation -->\n                <div class=\"ez-aff-tabs\">\n                    <button class=\"ez-aff-tab-btn active\" data-tab=\"reviewed-1432\">V\u00e1y Ng\u1ee7 Quy\u1ebfn R\u0169<\/button>\n                    <button class=\"ez-aff-tab-btn\" data-tab=\"gear-1432\">\u0110\u1ed3 L\u00f3t &amp; Bodysuit Sexy<\/button>\n                    <button class=\"ez-aff-tab-btn\" data-tab=\"wishlist-1432\">Hot Deal Shopee Gi\u1ea3m S\u00e2u<\/button>\n                    <button class=\"ez-aff-tab-btn\" data-tab=\"video_review-1432\">Video Tr\u1ea3i Nghi\u1ec7m<\/button>\n                <\/div>\n\n                <!-- Tab 1: Reviewed -->\n                <div class=\"ez-aff-tab-content active\" id=\"reviewed-1432\">\n                    <div class=\"ez-aff-grid\">\n                                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lshf7m42v2kld6\" class=\"\" alt=\"\u0110\u1ea7m Ng\u1ee7 Xuy\u00ean Th\u1ea5u K\u00e8m Qu\u1ea7n L\u1ecdt Khe G\u1ee3i C\u1ea3m Sexy\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"\u0110\u1ea7m Ng\u1ee7 Xuy\u00ean Th\u1ea5u K\u00e8m Qu\u1ea7n L\u1ecdt Khe G\u1ee3i C\u1ea3m Sexy\">\u0110\u1ea7m Ng\u1ee7 Xuy\u00ean Th\u1ea5u K\u00e8m Qu\u1ea7n L\u1ecdt Khe G\u1ee3i C\u1ea3m Sexy<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo2\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"6\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lsi50j41q0u5da\" class=\"\" alt=\"V\u00e1y Ng\u1ee7 L\u1ee5a Satin 2 D\u00e2y Ph\u1ed1i Ren Quy\u1ebfn R\u0169 Sang Tr\u1ecdng\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"V\u00e1y Ng\u1ee7 L\u1ee5a Satin 2 D\u00e2y Ph\u1ed1i Ren Quy\u1ebfn R\u0169 Sang Tr\u1ecdng\">V\u00e1y Ng\u1ee7 L\u1ee5a Satin 2 D\u00e2y Ph\u1ed1i Ren Quy\u1ebfn R\u0169 Sang Tr\u1ecdng<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo1\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"5\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                                <\/div>\n                                    <\/div>\n\n                <!-- Tab 2: Gear -->\n                <div class=\"ez-aff-tab-content\" id=\"gear-1432\">\n                    <div class=\"ez-aff-grid\">\n                                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lsi8h28q9yq88c\" class=\"\" alt=\"Bodysuit Ren Li\u1ec1n Th\u00e2n \u00d4m S\u00e1t \u0110\u01b0\u1eddng Cong N\u00f3ng B\u1ecfng\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"Bodysuit Ren Li\u1ec1n Th\u00e2n \u00d4m S\u00e1t \u0110\u01b0\u1eddng Cong N\u00f3ng B\u1ecfng\">Bodysuit Ren Li\u1ec1n Th\u00e2n \u00d4m S\u00e1t \u0110\u01b0\u1eddng Cong N\u00f3ng B\u1ecfng<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo4\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"8\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lsizx9j4e1qla4\" class=\"\" alt=\"B\u1ed9 \u0110\u1ed3 L\u00f3t Ren N\u1eef Cao C\u1ea5p N\u00e2ng Ng\u1ef1c T\u1ea1o Khe Sexy\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"B\u1ed9 \u0110\u1ed3 L\u00f3t Ren N\u1eef Cao C\u1ea5p N\u00e2ng Ng\u1ef1c T\u1ea1o Khe Sexy\">B\u1ed9 \u0110\u1ed3 L\u00f3t Ren N\u1eef Cao C\u1ea5p N\u00e2ng Ng\u1ef1c T\u1ea1o Khe Sexy<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo3\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"7\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                                <\/div>\n                                    <\/div>\n\n                <!-- Tab 3: Wishlist -->\n                <div class=\"ez-aff-tab-content\" id=\"wishlist-1432\">\n                    <div class=\"ez-aff-grid\">\n                                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lsk1a2j891kla2\" class=\"\" alt=\"B\u1ed9 Ng\u1ee7 Cosplay N\u1eef Sinh G\u1ee3i C\u1ea3m \u0110\u1ed1t M\u1eaft\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"B\u1ed9 Ng\u1ee7 Cosplay N\u1eef Sinh G\u1ee3i C\u1ea3m \u0110\u1ed1t M\u1eaft\">B\u1ed9 Ng\u1ee7 Cosplay N\u1eef Sinh G\u1ee3i C\u1ea3m \u0110\u1ed1t M\u1eaft<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo6\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"10\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                            <div class=\"ez-aff-card\">\n            <div class=\"ez-aff-img-wrapper\">\n                                <img decoding=\"async\" src=\"https:\/\/cf.shopee.vn\/file\/vn-11134207-7r98o-lsidv2d40rkmec\" class=\"\" alt=\"\u00c1o Cho\u00e0ng Ng\u1ee7 Kimono L\u1ee5a Vi\u1ec1n Ren K\u00e8m \u0110ai Th\u1eaft Eo\" loading=\"lazy\">\n            <\/div>\n            <div class=\"ez-aff-info\">\n                <h4 class=\"ez-aff-title\" title=\"\u00c1o Cho\u00e0ng Ng\u1ee7 Kimono L\u1ee5a Vi\u1ec1n Ren K\u00e8m \u0110ai Th\u1eaft Eo\">\u00c1o Cho\u00e0ng Ng\u1ee7 Kimono L\u1ee5a Vi\u1ec1n Ren K\u00e8m \u0110ai Th\u1eaft Eo<\/h4>\n                <div class=\"ez-aff-buttons\">\n                                        <a href=\"https:\/\/shope.ee\/demo5\" target=\"_blank\" rel=\"noopener\" class=\"ez-btn ez-btn-buy\" data-product-id=\"9\">\n                        \ud83d\uded2 Xem ngay\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n                                                                                <\/div>\n                                    <\/div>\n\n                <!-- Tab 4: Video Review -->\n                <div class=\"ez-aff-tab-content\" id=\"video_review-1432\">\n                            <div class=\"ez-video-review-grid\">\n                            <div style=\"grid-column: 1 \/ -1; text-align: center; padding: 40px; color: #94a3b8;\">\n                    Ch\u01b0a c\u00f3 video review n\u00e0o.\n                <\/div>\n                    <\/div>\n                                            <\/div>\n\n                <!-- Javascript switcher -->\n                <script>\n                    document.querySelectorAll('#ez-aff-1432 .ez-aff-tab-btn').forEach(function(btn) {\n                        btn.addEventListener('click', function() {\n                            \/\/ Deactivate active tab & button\n                            document.querySelectorAll('#ez-aff-1432 .ez-aff-tab-btn').forEach(b => b.classList.remove('active'));\n                            document.querySelectorAll('#ez-aff-1432 .ez-aff-tab-content').forEach(c => c.classList.remove('active'));\n                            \n                            \/\/ Activate clicked tab & button\n                            btn.classList.add('active');\n                            var tabId = btn.getAttribute('data-tab');\n                            document.getElementById(tabId).classList.add('active');\n                        });\n                    });\n                <\/script>\n            \n            <!-- Always load JS scripts for video playback and load more, regardless of target_tab -->\n            <script>\n                \/\/ --- VIDEO SLIDER CONTROLS ---\n                if (!window.ezVideoSliderInit) {\n                    window.ezVideoSliderInit = function() {\n                        document.querySelectorAll('.ez-video-products-slider').forEach(function(slider) {\n                            if (slider.getAttribute('data-slider-initialized')) return;\n                            slider.setAttribute('data-slider-initialized', '1');\n\n                            var slides = slider.querySelectorAll('.ez-video-slide');\n                            if (slides.length <= 1) return;\n\n                            var currentIndex = 0;\n                            var intervalId = null;\n                            var isHovered = false;\n\n                            function showSlide(index) {\n                                slides.forEach(function(slide, i) {\n                                    if (i === index) {\n                                        slide.classList.add('active');\n                                    } else {\n                                        slide.classList.remove('active');\n                                    }\n                                });\n                                currentIndex = index;\n                            }\n\n                            function nextSlide() {\n                                var nextIndex = (currentIndex + 1) % slides.length;\n                                showSlide(nextIndex);\n                            }\n\n                            function prevSlide() {\n                                var prevIndex = (currentIndex - 1 + slides.length) % slides.length;\n                                showSlide(prevIndex);\n                            }\n\n                            var prevBtn = slider.querySelector('.ez-video-slider-prev');\n                            var nextBtn = slider.querySelector('.ez-video-slider-next');\n\n                            if (prevBtn) {\n                                prevBtn.addEventListener('click', function(e) {\n                                    e.preventDefault();\n                                    e.stopPropagation();\n                                    prevSlide();\n                                    resetInterval();\n                                });\n                            }\n\n                            if (nextBtn) {\n                                nextBtn.addEventListener('click', function(e) {\n                                    e.preventDefault();\n                                    e.stopPropagation();\n                                    nextSlide();\n                                    resetInterval();\n                                });\n                            }\n\n                            function startInterval() {\n                                if (intervalId) clearInterval(intervalId);\n                                intervalId = setInterval(function() {\n                                    if (!isHovered) {\n                                        nextSlide();\n                                    }\n                                }, 4000);\n                            }\n\n                            function resetInterval() {\n                                startInterval();\n                            }\n\n                            var card = slider.closest('.ez-video-card');\n                            if (card) {\n                                card.addEventListener('mouseenter', function() {\n                                    isHovered = true;\n                                });\n                                card.addEventListener('mouseleave', function() {\n                                    isHovered = false;\n                                });\n                            }\n\n                            startInterval();\n                        });\n                    };\n\n                    if (document.readyState === 'loading') {\n                        document.addEventListener('DOMContentLoaded', window.ezVideoSliderInit);\n                    } else {\n                        window.ezVideoSliderInit();\n                    }\n                } else {\n                    window.ezVideoSliderInit();\n                }\n\n                if (!window.makeElementDraggable) {\n                    window.makeElementDraggable = function(el, handle) {\n                        var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;\n                        handle.onmousedown = dragMouseDown;\n                        handle.ontouchstart = dragMouseDown;\n\n                        function dragMouseDown(e) {\n                            e = e || window.event;\n                            if (e.target.closest('.ez-pip-close') || e.target.closest('.ez-pip-close *')) return;\n                            \n                            var isTouch = e.type === 'touchstart';\n                            var clientX = isTouch ? e.touches[0].clientX : e.clientX;\n                            var clientY = isTouch ? e.touches[0].clientY : e.clientY;\n\n                            pos3 = clientX;\n                            pos4 = clientY;\n\n                            var dragOverlay = document.createElement('div');\n                            dragOverlay.style.position = 'absolute';\n                            dragOverlay.style.top = '0';\n                            dragOverlay.style.left = '0';\n                            dragOverlay.style.width = '100%';\n                            dragOverlay.style.height = '100%';\n                            dragOverlay.style.zIndex = '99999';\n                            dragOverlay.className = 'ez-pip-drag-overlay';\n                            el.appendChild(dragOverlay);\n\n                            if (isTouch) {\n                                document.ontouchend = closeDragElement;\n                                document.ontouchmove = elementDrag;\n                            } else {\n                                document.onmouseup = closeDragElement;\n                                document.onmousemove = elementDrag;\n                            }\n                            \n                            el.style.transition = 'none';\n                            el.style.animation = 'none';\n                            \n                            var rect = el.getBoundingClientRect();\n                            el.style.bottom = 'auto';\n                            el.style.right = 'auto';\n                            el.style.left = rect.left + 'px';\n                            el.style.top = rect.top + 'px';\n                        }\n\n                        function elementDrag(e) {\n                            e = e || window.event;\n                            var isTouch = e.type === 'touchmove';\n                            var clientX = isTouch ? e.touches[0].clientX : e.clientX;\n                            var clientY = isTouch ? e.touches[0].clientY : e.clientY;\n\n                            pos1 = pos3 - clientX;\n                            pos2 = pos4 - clientY;\n                            pos3 = clientX;\n                            pos4 = clientY;\n                            \n                            var newTop = el.offsetTop - pos2;\n                            var newLeft = el.offsetLeft - pos1;\n\n                            var maxLeft = window.innerWidth - el.offsetWidth;\n                            var maxTop = window.innerHeight - el.offsetHeight;\n\n                            if (newLeft < 0) newLeft = 0;\n                            if (newLeft > maxLeft) newLeft = maxLeft;\n                            if (newTop < 0) newTop = 0;\n                            if (newTop > maxTop) newTop = maxTop;\n\n                            el.style.top = newTop + 'px';\n                            el.style.left = newLeft + 'px';\n                        }\n\n                        function closeDragElement() {\n                            var overlay = el.querySelector('.ez-pip-drag-overlay');\n                            if (overlay) overlay.remove();\n\n                            document.onmouseup = null;\n                            document.onmousemove = null;\n                            document.ontouchend = null;\n                            document.ontouchmove = null;\n                        }\n                    };\n                }\n\n                if (!window.ezSavePlayerState) {\n                    window.ezSavePlayerState = function(wrapper) {\n                        var iframe = wrapper.querySelector('iframe');\n                        if (iframe) {\n                            var src = iframe.src || '';\n                            if (src.includes('youtube.com\/embed\/')) {\n                                var savedTime = parseFloat(wrapper.getAttribute('data-current-time') || 0);\n                                if (savedTime > 0) {\n                                    try {\n                                        var url = new URL(src);\n                                        url.searchParams.set('start', Math.floor(savedTime));\n                                        iframe.src = url.toString();\n                                    } catch (e) {\n                                        var newSrc = src.replace(\/[?&]start=\\d+\/g, '');\n                                        newSrc += (newSrc.includes('?') ? '&' : '?') + 'start=' + Math.floor(savedTime);\n                                        iframe.src = newSrc;\n                                    }\n                                }\n                            }\n                        }\n                        var video = wrapper.querySelector('video');\n                        if (video) {\n                            wrapper.setAttribute('data-current-time', video.currentTime);\n                            wrapper.setAttribute('data-was-paused', video.paused ? '1' : '0');\n                        }\n                    };\n                }\n\n                if (!window.ezRestorePlayerState) {\n                    window.ezRestorePlayerState = function(wrapper) {\n                        var iframe = wrapper.querySelector('iframe');\n                        if (iframe) {\n                            setTimeout(function() {\n                                try {\n                                    iframe.contentWindow.postMessage(JSON.stringify({event: \"listening\"}), \"*\");\n                                } catch (e) {}\n                            }, 150);\n                            setTimeout(function() {\n                                try {\n                                    iframe.contentWindow.postMessage(JSON.stringify({event: \"listening\"}), \"*\");\n                                } catch (e) {}\n                            }, 600);\n                        }\n                        var video = wrapper.querySelector('video');\n                        if (video) {\n                            var savedTime = parseFloat(wrapper.getAttribute('data-current-time') || 0);\n                            var wasPaused = wrapper.getAttribute('data-was-paused') === '1';\n                            if (savedTime > 0) {\n                                video.currentTime = savedTime;\n                                if (!wasPaused) {\n                                    video.play().catch(function(e) {});\n                                }\n                                video.addEventListener('loadedmetadata', function() {\n                                    video.currentTime = savedTime;\n                                    if (!wasPaused) {\n                                        video.play().catch(function(e) {});\n                                    }\n                                }, { once: true });\n                            }\n                        }\n                    };\n                }\n\n                if (!window.ezYoutubeTimeTrackerInit) {\n                    window.ezYoutubeTimeTrackerInit = true;\n                    window.addEventListener('message', function(event) {\n                        if (typeof event.data === 'string') {\n                            try {\n                                var data = JSON.parse(event.data);\n                                if (data.event === 'infoDelivery' && data.info && typeof data.info.currentTime !== 'undefined') {\n                                    var iframes = document.querySelectorAll('.ez-video-player-wrapper iframe');\n                                    for (var i = 0; i < iframes.length; i++) {\n                                        if (iframes[i].contentWindow === event.source) {\n                                            var wrapper = iframes[i].closest('.ez-video-player-wrapper');\n                                            if (wrapper) {\n                                                wrapper.setAttribute('data-current-time', data.info.currentTime);\n                                            }\n                                            break;\n                                        }\n                                    }\n                                }\n                            } catch(e) {}\n                        }\n                    });\n                }\n\n                if (!window.ezRestoreFromPip) {\n                    window.ezRestoreFromPip = function(wrapper) {\n                        if (window.ezSavePlayerState) {\n                            window.ezSavePlayerState(wrapper);\n                        }\n                        var containerId = wrapper.getAttribute('data-container-id');\n                        if (containerId) {\n                            var container = document.getElementById(containerId);\n                            if (container) {\n                                var placeholder = container.querySelector('.ez-video-placeholder');\n                                if (placeholder) {\n                                    placeholder.remove();\n                                }\n                                container.appendChild(wrapper);\n                            }\n                            wrapper.removeAttribute('data-container-id');\n                        }\n                        wrapper.classList.remove('ez-pip-active');\n                        var closeBtn = wrapper.querySelector('.ez-pip-close');\n                        if (closeBtn) closeBtn.remove();\n                        var dragHandle = wrapper.querySelector('.ez-pip-drag-handle');\n                        if (dragHandle) dragHandle.remove();\n\n                        \/\/ Reset dragging styles\n                        wrapper.style.top = '';\n                        wrapper.style.left = '';\n                        wrapper.style.bottom = '';\n                        wrapper.style.right = '';\n                        wrapper.style.transition = '';\n                        wrapper.style.animation = '';\n\n                        if (window.ezRestorePlayerState) {\n                            window.ezRestorePlayerState(wrapper);\n                        }\n                    };\n                }\n\n                if (!window.ezVideoInit) {\n                    window.ezVideoInit = true;\n                    document.addEventListener('click', function(e) {\n                        var wrapper = e.target.closest('.ez-video-player-wrapper');\n                        if (!wrapper || wrapper.classList.contains('playing')) return;\n                        \n                        \/\/ --- VIDEO INTERLOCKING ---\n                        document.querySelectorAll('.ez-video-player-wrapper.playing').forEach(function(otherWrapper) {\n                            if (otherWrapper !== wrapper) {\n                                \/\/ If it is currently in PiP, restore it first\n                                if (otherWrapper.classList.contains('ez-pip-active') || otherWrapper.getAttribute('data-container-id')) {\n                                    window.ezRestoreFromPip(otherWrapper);\n                                }\n                                \n                                var originalHtml = otherWrapper.getAttribute('data-original-html');\n                                if (originalHtml) {\n                                    otherWrapper.innerHTML = originalHtml;\n                                }\n                                otherWrapper.classList.remove('playing');\n                                \n                                var parentContainer = otherWrapper.closest('.ez-video-cover-section');\n                                if (parentContainer && window.ezVideoObserver) {\n                                    window.ezVideoObserver.unobserve(parentContainer);\n                                }\n                            }\n                        });\n\n                        var videoUrl = wrapper.getAttribute('data-video-url') || '';\n                        if (!videoUrl) return;\n                        var embedHtml = '';\n                        \n                        var ytMatch = videoUrl.match(\/(?:youtube\\.com\\\/(?:[^\\\/]+\\\/.+\\\/|(?:v|e(?:mbed)?)\\\/|.*[?&]v=)|youtu\\.be\\\/|youtube\\.com\\\/shorts\\\/)([^\"&?\\\/ ]{11})\/i);\n                        if (ytMatch) {\n                            var videoId = ytMatch[1];\n                            embedHtml = '<iframe src=\"https:\/\/www.youtube.com\/embed\/' + videoId + '?autoplay=1&rel=0&enablejsapi=1\" onload=\"try{this.contentWindow.postMessage(JSON.stringify({event:\\'listening\\'}),\\'*\\')}catch(e){}\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>';\n                        } else {\n                            var ttMatch = videoUrl.match(\/tiktok\\.com\\\/@[^\\\/]+\\\/video\\\/(\\d+)\/i);\n                            if (ttMatch) {\n                                var videoId = ttMatch[1];\n                                embedHtml = '<iframe src=\"https:\/\/www.tiktok.com\/embed\/v2\/' + videoId + '\" allowfullscreen><\/iframe>';\n                            } else if (videoUrl.match(\/\\.mp4$\/i)) {\n                                embedHtml = '<video src=\"' + videoUrl + '\" controls autoplay loop playsinline><\/video>';\n                            } else {\n                                embedHtml = '<iframe src=\"' + videoUrl + '\" allowfullscreen><\/iframe>';\n                            }\n                        }\n                        \n                        if (!wrapper.getAttribute('data-original-html')) {\n                            wrapper.setAttribute('data-original-html', wrapper.innerHTML);\n                        }\n\n                        wrapper.innerHTML = embedHtml;\n                        wrapper.classList.add('playing');\n                        if (window.ezRestorePlayerState) {\n                            window.ezRestorePlayerState(wrapper);\n                        }\n\n                        var container = wrapper.closest('.ez-video-cover-section');\n                        if (container && window.ezVideoObserver) {\n                            if (!container.id) {\n                                container.id = 'ez-container-' + Date.now() + '-' + Math.floor(Math.random() * 1000);\n                            }\n                            window.ezVideoObserver.observe(container);\n                        }\n                    });\n\n                    \/\/ --- SCROLLING PICTURE-IN-PICTURE OBSERVATION ---\n                    if ('IntersectionObserver' in window) {\n                        window.ezVideoObserver = new IntersectionObserver(function(entries) {\n                            entries.forEach(function(entry) {\n                                var container = entry.target;\n                                var wrapper = container.querySelector('.ez-video-player-wrapper') || \n                                              document.querySelector('.ez-video-player-wrapper[data-container-id=\"' + container.id + '\"]');\n                                \n                                if (!wrapper || !wrapper.classList.contains('playing')) return;\n\n                                if (!entry.isIntersecting) {\n                                    \/\/ Avoid duplicate PiP setup\n                                    if (wrapper.classList.contains('ez-pip-active') || wrapper.getAttribute('data-container-id')) {\n                                        return;\n                                    }\n\n                                    \/\/ Save state before moving wrapper in DOM\n                                    if (window.ezSavePlayerState) {\n                                        window.ezSavePlayerState(wrapper);\n                                    }\n\n                                    \/\/ Create placeholder to keep card layout height & width\n                                    var placeholder = document.createElement('div');\n                                    placeholder.className = 'ez-video-placeholder';\n                                    placeholder.style.width = '100%';\n                                    placeholder.style.height = '100%';\n                                    placeholder.style.background = '#0f172a';\n                                    placeholder.style.display = 'flex';\n                                    placeholder.style.alignItems = 'center';\n                                    placeholder.style.justifyContent = 'center';\n                                    placeholder.style.color = '#94a3b8';\n                                    placeholder.style.fontSize = '12px';\n                                    placeholder.style.fontWeight = '600';\n                                    placeholder.style.textAlign = 'center';\n                                    placeholder.style.padding = '10px';\n                                    placeholder.style.boxSizing = 'border-box';\n                                    placeholder.style.position = 'absolute';\n                                    placeholder.style.top = '0';\n                                    placeholder.style.left = '0';\n                                    placeholder.style.zIndex = '1';\n                                    placeholder.innerHTML = '<div><div style=\"font-size: 20px; margin-bottom: 5px;\">\ud83d\udcfa<\/div>\u0110ang xem ch\u1ebf \u0111\u1ed9 thu nh\u1ecf<\/div>';\n\n                                    \/\/ Ensure container has ID for mapping\n                                    if (!container.id) {\n                                        container.id = 'ez-container-' + Date.now() + '-' + Math.floor(Math.random() * 1000);\n                                    }\n                                    wrapper.setAttribute('data-container-id', container.id);\n\n                                    \/\/ Insert placeholder, and move wrapper to body\n                                    container.appendChild(placeholder);\n                                    document.body.appendChild(wrapper);\n                                    wrapper.classList.add('ez-pip-active');\n                                    \n                                    \/\/ Create drag handle\n                                    var dragHandle = document.createElement('div');\n                                    dragHandle.className = 'ez-pip-drag-handle';\n                                    dragHandle.innerHTML = '<span class=\"ez-pip-drag-icon\" style=\"margin-right: 6px; font-weight: bold;\">\u22ee\u22ee<\/span> Di chuy\u1ec3n';\n                                    dragHandle.style.position = 'absolute';\n                                    dragHandle.style.top = '0';\n                                    dragHandle.style.left = '0';\n                                    dragHandle.style.width = '100%';\n                                    dragHandle.style.height = '36px';\n                                    dragHandle.style.background = 'linear-gradient(to bottom, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%)';\n                                    dragHandle.style.color = '#fff';\n                                    dragHandle.style.fontSize = '11px';\n                                    dragHandle.style.display = 'flex';\n                                    dragHandle.style.alignItems = 'center';\n                                    dragHandle.style.paddingLeft = '12px';\n                                    dragHandle.style.cursor = 'grab';\n                                    dragHandle.style.zIndex = '99998';\n                                    dragHandle.style.pointerEvents = 'auto';\n                                    dragHandle.style.boxSizing = 'border-box';\n                                    dragHandle.style.userSelect = 'none';\n                                    dragHandle.style.webkitUserSelect = 'none';\n                                    \n                                    wrapper.appendChild(dragHandle);\n\n                                    if (window.makeElementDraggable) {\n                                        window.makeElementDraggable(wrapper, dragHandle);\n                                    }\n                                    \n                                    if (!wrapper.querySelector('.ez-pip-close')) {\n                                        var closeBtn = document.createElement('button');\n                                        closeBtn.className = 'ez-pip-close';\n                                        closeBtn.innerHTML = '&times;';\n                                        closeBtn.addEventListener('click', function(ev) {\n                                            ev.stopPropagation();\n                                            \n                                            \/\/ Restore to original parent first\n                                            window.ezRestoreFromPip(wrapper);\n                                            \n                                            var originalHtml = wrapper.getAttribute('data-original-html');\n                                            if (originalHtml) {\n                                                wrapper.innerHTML = originalHtml;\n                                            }\n                                            wrapper.classList.remove('playing');\n                                            window.ezVideoObserver.unobserve(container);\n                                        });\n                                        wrapper.appendChild(closeBtn);\n                                    }\n\n                                    \/\/ Restore state if needed (for HTML5 <video> elements)\n                                    if (window.ezRestorePlayerState) {\n                                        window.ezRestorePlayerState(wrapper);\n                                    }\n                                } else {\n                                    \/\/ Returns back to viewport, put it back in place\n                                    if (wrapper.classList.contains('ez-pip-active') || wrapper.getAttribute('data-container-id')) {\n                                        window.ezRestoreFromPip(wrapper);\n                                    }\n                                }\n                            });\n                        }, { threshold: 0.1 });\n                    }\n                }\n\n                \/\/ --- CLICK TRACKING INITIATION ---\n                if (!window.ezAffClickTrackInit) {\n                    window.ezAffClickTrackInit = true;\n                    document.addEventListener('click', function(e) {\n                        var buyBtn = e.target.closest('.ez-btn-buy, .ez-video-product-link-btn');\n                        if (!buyBtn) return;\n                        \n                        var productId = buyBtn.getAttribute('data-product-id');\n                        if (!productId) return;\n                        \n                        var formData = new FormData();\n                        formData.append('action', 'ez_aff_track_click');\n                        formData.append('product_id', productId);\n                        \n                        if (navigator.sendBeacon) {\n                            navigator.sendBeacon('https:\/\/quyenru.shop\/wp-admin\/admin-ajax.php', formData);\n                        } else {\n                            fetch('https:\/\/quyenru.shop\/wp-admin\/admin-ajax.php', {\n                                method: 'POST',\n                                body: formData\n                            });\n                        }\n                    });\n                }\n\n                if (!window.ezAffLoadMoreInit) {\n                    window.ezAffLoadMoreInit = true;\n\n                    var loadMoreObserver = new IntersectionObserver(function(entries) {\n                        entries.forEach(function(entry) {\n                            if (entry.isIntersecting) {\n                                var btn = entry.target;\n                                if (btn.classList.contains('loading')) return;\n                                triggerLoadMore(btn);\n                            }\n                        });\n                    }, {\n                        rootMargin: '150px'\n                    });\n\n                    function triggerLoadMore(btn) {\n                        var tab = btn.getAttribute('data-tab');\n                        var page = parseInt(btn.getAttribute('data-page')) || 1;\n                        var limit = parseInt(btn.getAttribute('data-limit')) || 12;\n                        var rand = btn.getAttribute('data-rand');\n                        \n                        var nextPage = page + 1;\n                        btn.classList.add('loading');\n                        btn.textContent = '\u23f3 \u0110ang t\u1ea3i th\u00eam s\u1ea3n ph\u1ea9m...';\n\n                        var formData = new FormData();\n                        formData.append('action', 'ez_aff_load_more');\n                        formData.append('tab', tab);\n                        formData.append('page', nextPage);\n                        formData.append('limit', limit);\n\n                        var container;\n                        if (rand) {\n                            container = document.querySelector('#' + tab + '-' + rand + ' .ez-aff-grid');\n                            if (!container && tab === 'video_review') {\n                                container = document.querySelector('#video_review-' + rand + ' .ez-video-review-grid');\n                            }\n                        } else {\n                            container = btn.closest('.ez-video-review-container').querySelector('.ez-video-review-grid');\n                        }\n\n                        if (!container) {\n                            btn.classList.remove('loading');\n                            btn.textContent = '';\n                            return;\n                        }\n\n                        fetch('https:\/\/quyenru.shop\/wp-admin\/admin-ajax.php', {\n                            method: 'POST',\n                            body: formData\n                        })\n                        .then(function(res) { return res.json(); })\n                        .then(function(res) {\n                            if (res.success && res.data.html) {\n                                container.insertAdjacentHTML('beforeend', res.data.html);\n                                if (window.ezVideoSliderInit) window.ezVideoSliderInit();\n                                btn.setAttribute('data-page', nextPage);\n                                \n                                if (res.data.has_more) {\n                                    btn.classList.remove('loading');\n                                    btn.textContent = '';\n                                } else {\n                                    loadMoreObserver.unobserve(btn);\n                                    btn.closest('.ez-aff-load-more-wrapper').remove();\n                                }\n                            } else {\n                                loadMoreObserver.unobserve(btn);\n                                btn.closest('.ez-aff-load-more-wrapper').remove();\n                            }\n                        })\n                        .catch(function() {\n                            btn.classList.remove('loading');\n                            btn.textContent = 'L\u1ed7i t\u1ea3i, h\u00e3y cu\u1ed9n l\u1ea1i \u0111\u1ec3 th\u1eed l\u1ea1i';\n                        });\n                    }\n\n                    \/\/ Observe initial buttons\n                    document.querySelectorAll('.ez-aff-load-more-btn').forEach(function(btn) {\n                        loadMoreObserver.observe(btn);\n                    });\n\n                    \/\/ Observe future buttons\n                    var mutationObserver = new MutationObserver(function(mutations) {\n                        mutations.forEach(function(mutation) {\n                            mutation.addedNodes.forEach(function(node) {\n                                if (node.nodeType === 1) {\n                                    if (node.classList && node.classList.contains('ez-aff-load-more-btn')) {\n                                        loadMoreObserver.observe(node);\n                                    }\n                                    node.querySelectorAll('.ez-aff-load-more-btn').forEach(function(btn) {\n                                        loadMoreObserver.observe(btn);\n                                    });\n                                }\n                            });\n                        });\n                    });\n                    mutationObserver.observe(document.body, { childList: true, subtree: true });\n                }\n            <\/script>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>\u2728 B\u1ed8 S\u01afU T\u1eacP N\u1ed8I Y &#038; V\u00c1Y NG\u1ee6 CAO C\u1ea4P 2026 \u0110\u1ec9nh Cao Quy\u1ebfn R\u0169 &nbsp;\u2013&nbsp; Th\u1ee9c T\u1ec9nh M\u1ecdi Gi\u00e1c&nbsp;Quan Tuy\u1ec3n ch\u1ecdn nh\u1eefng thi\u1ebft k\u1ebf v\u00e1y ng\u1ee7 l\u1ee5a satin ph\u1ed1i ren xuy\u00ean th\u1ea5u v\u00e0 bodysuit sexy t\u00f4n d\u00e1ng nh\u1ea5t tr\u00ean Shopee. S\u0103n voucher \u0111\u1ed9c quy\u1ec1n gi\u1ea3m \u0111\u1ebfn 50%. \ud83d\udd25 Kh\u00e1m Ph\u00e1 Deal Hot H\u00f4m [&#8230;]\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-blank.php","meta":{"footnotes":""},"class_list":["post-4","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/quyenru.shop\/index.php?rest_route=\/wp\/v2\/pages\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quyenru.shop\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/quyenru.shop\/index.php?rest_route=\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/quyenru.shop\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4"}],"version-history":[{"count":1,"href":"https:\/\/quyenru.shop\/index.php?rest_route=\/wp\/v2\/pages\/4\/revisions"}],"predecessor-version":[{"id":12,"href":"https:\/\/quyenru.shop\/index.php?rest_route=\/wp\/v2\/pages\/4\/revisions\/12"}],"wp:attachment":[{"href":"https:\/\/quyenru.shop\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}