/*
 * Shared mobile navigation polish — inject vào TẤT CẢ 832 theme qua cdn_assets_head().
 * Mục tiêu: fix menu mobile thân thiện cho mọi nav variant đang dùng:
 *   .nav-sticky-top   — burger toggle ul absolute
 *   .nav-side-drawer  — drawer slide-in từ trái
 *   .nav-minimal      — dropdown click "Menu"
 *   .nav-mega / .nav-mega-top — full-width menu
 *   .nav-magazine     — 2-row magazine layout
 *   .nav-centered     — left/right + brand giữa
 *
 * Section §0 áp dụng MỌI viewport (desktop + mobile) — phần còn lại trong @media ≤992px.
 * Dùng !important vì theme CSS load TRƯỚC (style.css per-theme) — file shared cần override.
 */

/* ═════════════════════════════════════════════════════════════════════════
   §0. BRAND LOGO — ép kích thước cố định cho img để không phá layout
       Vấn đề: preview tenant chưa có logo → render <span>text</span> → fit
       column tự nhiên. Tenant thật upload logo → <img> nhưng KHÔNG có
       max-width/max-height từ theme CSS → image to render at native ratio
       → đẩy 2 ul/cta sang trái-phải → bố cục lệch.
   Fix: clamp .brand img tới slot cố định cho MỌI nav variant + viewport.
   ═════════════════════════════════════════════════════════════════════════ */
.nav-sticky-top .brand,
.nav-side-drawer .brand,
.nav-mega .brand,
.nav-mega-top .brand,
.nav-magazine .brand,
.nav-centered .brand,
.nav-minimal .brand {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
}
.nav-sticky-top .brand img,
.nav-side-drawer .brand img,
.nav-mega .brand img,
.nav-mega-top .brand img,
.nav-magazine .brand img,
.nav-centered .brand img,
.nav-minimal .brand img {
    max-height: 48px !important;
    height: auto !important;
    width: auto !important;
    max-width: 200px !important;
    object-fit: contain !important;
    display: block !important;
}

/* nav-centered: brand ở giữa với layout grid 1fr/auto/1fr — clamp slot brand
   không vượt quá 1/3 viewport width để 2 ul vẫn đủ chỗ */
.nav-centered .brand {
    justify-content: center !important;
    max-width: min(33vw, 280px) !important;
    overflow: hidden !important;
}
.nav-centered .brand img {
    max-width: 100% !important;
}

/* Mobile: logo nhỏ hơn để vừa burger + cta */
@media (max-width: 768px) {
    .nav-sticky-top .brand img,
    .nav-side-drawer .brand img,
    .nav-mega .brand img,
    .nav-mega-top .brand img,
    .nav-magazine .brand img,
    .nav-centered .brand img,
    .nav-minimal .brand img {
        max-height: 36px !important;
        max-width: 140px !important;
    }
}

/* ═════════════════════════════════════════════════════════════════════════
   §0b. FOOTER LINK — bỏ gạch chân + đồng bộ màu link với text body của footer
       Áp dụng cho TẤT CẢ themes: site-footer (V7), footer-dp (dark-pro),
       tf-foot (default flavors), thẻ <footer> generic.
       Link dùng `color: inherit` để khớp màu chữ thân footer (xám/trắng/đen
       tùy theme). Hover dùng opacity để vẫn có affordance mà không lệch màu.
   ═════════════════════════════════════════════════════════════════════════ */
.site-footer a,
.site-footer a:link,
.site-footer a:visited,
.footer-dp a,
.footer-dp a:link,
.footer-dp a:visited,
.tf-foot a,
.tf-foot a:link,
.tf-foot a:visited,
footer.site-footer a,
footer.footer-dp a,
footer a {
    color: inherit !important;
    text-decoration: none !important;
    transition: opacity .15s, color .15s !important;
}
.site-footer a:hover,
.footer-dp a:hover,
.tf-foot a:hover,
footer a:hover {
    color: inherit !important;
    text-decoration: none !important;
    opacity: .75;
}

/* Brand-name / heading trong footer thường có màu trắng riêng — KHÔNG ép inherit.
   Reset để tôn trọng màu theme đặt cho element này. */
.site-footer .brand-name,
.site-footer .brand-block .brand-name,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6,
.footer-dp h1, .footer-dp h2, .footer-dp h3, .footer-dp h4, .footer-dp h5, .footer-dp h6,
.tf-foot h1, .tf-foot h2, .tf-foot h3, .tf-foot h4, .tf-foot h5, .tf-foot h6 {
    color: revert;
}

/* ═════════════════════════════════════════════════════════════════════════
   §0c. Mobile-only injected elements — base hidden ở MỌI viewport
       JS (mobile_nav.js) luôn inject .mobile-nav-header và .mobile-nav-close
       vào <body> bất kể desktop/mobile. Rule display:none cho 2 element này
       nằm trong @media ≤992px → desktop không match → element render với
       display block mặc định → leak vào desktop.
       Fix: ẩn mặc định ở base, chỉ §3b/header trong @media mới mở khi mobile.
   ═════════════════════════════════════════════════════════════════════════ */
.mobile-nav-header,
.mobile-nav-close {
    display: none !important;
}

@media (max-width: 992px) {

/* ── 1. Burger button — 3 lines hamburger universal ─────────────────────── */
.nav-sticky-top .burger,
.nav-side-drawer .burger,
.nav-mega .burger,
.nav-mega-top .burger,
.nav-magazine .burger,
.nav-centered .burger,
[data-burger],
[data-drawer-toggle] {
    display: inline-flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 44px;
    height: 44px;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    cursor: pointer;
    z-index: 1002;
    position: relative;
    flex-shrink: 0;
}
.nav-sticky-top .burger > span,
.nav-side-drawer .burger > span,
.nav-mega .burger > span,
.nav-mega-top .burger > span,
.nav-magazine .burger > span,
.nav-centered .burger > span,
[data-burger] > span,
[data-drawer-toggle] > span {
    display: block !important;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: transform .25s ease, opacity .2s ease;
    color: #1f2937;
}

/* Burger active state — X icon */
nav.is-mobile-open .burger > span:nth-child(1),
nav.is-mobile-open [data-burger] > span:nth-child(1),
nav.is-mobile-open [data-drawer-toggle] > span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}
nav.is-mobile-open .burger > span:nth-child(2),
nav.is-mobile-open [data-burger] > span:nth-child(2),
nav.is-mobile-open [data-drawer-toggle] > span:nth-child(2) {
    opacity: 0;
}
nav.is-mobile-open .burger > span:nth-child(3),
nav.is-mobile-open [data-burger] > span:nth-child(3),
nav.is-mobile-open [data-drawer-toggle] > span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* ── 2. Container — flex layout chuẩn cho mọi nav variant ─────────────── */
.nav-sticky-top > .container,
.nav-side-drawer > .container,
.nav-mega > .container,
.nav-mega-top > .container,
.nav-magazine > .container,
.nav-centered > .container,
.nav-minimal > .container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    padding: 12px 16px !important;
    min-height: 60px !important;
    position: relative !important;
}

/* Brand luôn hiển thị, không bị scale xuống quá nhỏ */
.nav-sticky-top .brand,
.nav-side-drawer .brand,
.nav-mega .brand,
.nav-mega-top .brand,
.nav-magazine .brand,
.nav-centered .brand,
.nav-minimal .brand {
    flex: 0 1 auto !important;
    margin: 0 !important;
    font-size: 1.05rem !important;
    max-width: 60% !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nav-sticky-top .brand img,
.nav-side-drawer .brand img,
.nav-mega .brand img,
.nav-mega-top .brand img,
.nav-magazine .brand img,
.nav-centered .brand img,
.nav-minimal .brand img {
    height: 32px !important;
    width: auto !important;
    max-width: 100% !important;
}

/* ── 3. Menu UL — FULL-SCREEN overlay, slide-down từ trên ─────────────── */
.nav-sticky-top ul,
.nav-side-drawer .drawer ul,
.nav-side-drawer ul.drawer,
.nav-mega ul.main,
.nav-mega-top ul.main,
.nav-magazine ul,
.nav-centered ul.left,
.nav-centered ul.right,
.nav-minimal .dropdown ul {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    margin: 0 !important;
    padding: 76px 20px 32px !important;
    list-style: none !important;
    box-shadow: none !important;
    border: 0 !important;
    z-index: 9998 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    transform: translateY(-100%) !important;
    transition: transform .32s cubic-bezier(.4,0,.2,1) !important;
    opacity: 1 !important;
    gap: 6px !important;
    visibility: visible !important;
}

/* Active state — slide xuống từ trên */
nav.is-mobile-open .nav-sticky-top ul,
.nav-sticky-top.is-mobile-open ul,
.nav-side-drawer.is-mobile-open .drawer ul,
.nav-side-drawer.is-mobile-open ul.drawer,
.nav-mega.is-mobile-open ul.main,
.nav-mega-top.is-mobile-open ul.main,
.nav-magazine.is-mobile-open ul,
.nav-centered.is-mobile-open ul.left,
.nav-centered.is-mobile-open ul.right,
.nav-minimal.is-mobile-open .dropdown ul,
nav.is-mobile-open ul.drawer,
nav.is-mobile-open ul.main {
    transform: translateY(0) !important;
}

/* Menu item — touch-friendly 52px */
.nav-sticky-top ul li,
.nav-side-drawer .drawer ul li,
.nav-side-drawer ul.drawer li,
.nav-mega ul.main li,
.nav-mega-top ul.main li,
.nav-magazine ul li,
.nav-centered ul.left li,
.nav-centered ul.right li,
.nav-minimal .dropdown ul li {
    width: 100% !important;
    margin: 0 !important;
    list-style: none !important;
}
.nav-sticky-top ul li a,
.nav-side-drawer .drawer ul li a,
.nav-side-drawer ul.drawer li a,
.nav-mega ul.main li a,
.nav-mega-top ul.main li a,
.nav-magazine ul li a,
.nav-centered ul.left li a,
.nav-centered ul.right li a,
.nav-minimal .dropdown ul li a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    padding: 16px 14px !important;
    min-height: 52px !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    border-radius: 10px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    color: #0f172a !important;
    text-decoration: none !important;
    background: transparent !important;
    line-height: 1.3 !important;
}
.nav-sticky-top ul li a:hover,
.nav-sticky-top ul li a:active,
.nav-side-drawer .drawer ul li a:hover,
.nav-side-drawer .drawer ul li a:active,
.nav-side-drawer ul.drawer li a:hover,
.nav-side-drawer ul.drawer li a:active,
.nav-mega ul.main li a:hover,
.nav-mega ul.main li a:active,
.nav-mega-top ul.main li a:hover,
.nav-mega-top ul.main li a:active,
.nav-magazine ul li a:hover,
.nav-magazine ul li a:active,
.nav-centered ul.left li a:hover,
.nav-centered ul.left li a:active,
.nav-centered ul.right li a:hover,
.nav-centered ul.right li a:active,
.nav-minimal .dropdown ul li a:hover,
.nav-minimal .dropdown ul li a:active {
    background: #eef2ff !important;
    color: var(--clr-primary, #1a4fd6) !important;
}

/* ── 3b. Close button (X) injected by JS — luôn nổi top-right trong overlay */
.mobile-nav-close {
    position: fixed !important;
    top: 14px !important;
    right: 14px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: #f1f5f9 !important;
    border: 0 !important;
    color: #0f172a !important;
    font-size: 22px !important;
    line-height: 1 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 10000 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
    transition: background .15s, transform .15s !important;
}
.mobile-nav-close:hover,
.mobile-nav-close:active {
    background: #e2e8f0 !important;
    transform: scale(1.05) !important;
}
body.has-mobile-nav-open .mobile-nav-close {
    display: inline-flex !important;
}

/* Header brand bar bên trong overlay — hiển thị brand + label "Menu" */
.mobile-nav-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 64px !important;
    padding: 0 20px !important;
    display: none !important;
    align-items: center !important;
    background: linear-gradient(to bottom, #ffffff 0%, rgba(255,255,255,.96) 100%) !important;
    border-bottom: 1px solid #f1f5f9 !important;
    z-index: 9999 !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    color: #0f172a !important;
    letter-spacing: .2px !important;
}
body.has-mobile-nav-open .mobile-nav-header {
    display: flex !important;
}

/* ── 4. CTA button — vẫn hiển thị nhưng compact ──────────────────────── */
.nav-sticky-top .cta,
.nav-side-drawer .cta,
.nav-mega .cta,
.nav-mega-top .cta,
.nav-magazine .cta,
.nav-centered .cta,
.nav-minimal .cta {
    padding: 8px 14px !important;
    font-size: 13px !important;
    flex-shrink: 0 !important;
}

/* Ẩn label nếu chỉ là số phone (giữ icon) khi quá hẹp */
@media (max-width: 480px) {
    .nav-sticky-top .cta span,
    .nav-side-drawer .cta span {
        display: none;
    }
    .nav-sticky-top .cta,
    .nav-side-drawer .cta,
    .nav-mega .cta,
    .nav-mega-top .cta,
    .nav-magazine .cta,
    .nav-centered .cta {
        padding: 8px 10px !important;
        font-size: 12px !important;
    }
}

/* ── 5. Backdrop — KHÔNG dùng (overlay full-screen rồi). Để compatibility, ẩn. */
.mobile-nav-backdrop {
    display: none !important;
}
.mobile-nav-backdrop.x-keep-stub {
    opacity: 1;
    visibility: visible;
}

/* Lock body scroll khi drawer mở */
body.has-mobile-nav-open {
    overflow: hidden;
}

/* ── 6. nav-centered — JS merge li từ ul.right → ul.left khi mobile
       (mobile_nav.js xử lý). Ẩn ul.right vì items đã clone vào left. */
.nav-centered ul.right {
    display: none !important;
}

/* ── 7. nav-minimal — menu-toggle button styling ─────────────────────── */
.nav-minimal .menu-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 10px 14px !important;
    background: transparent !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    color: #0f172a !important;
    font-size: 14px !important;
    font-weight: 500;
    cursor: pointer;
    min-height: 44px;
}

/* ── 8. Form input zoom prevention iOS ───────────────────────────────── */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select {
    font-size: 16px !important;
}

/* ── 9. Safe-area padding — content không sát viền viewport trên mobile ─
       Mọi theme dùng pattern <section><div class="container">...</div></section>:
       background ở section (full-width OK), content ở container — ép container
       luôn có padding-inline >= 16px để text không sát viền. */

/* Container chuẩn — chính */
.container {
    padding-left: max(16px, var(--sp-3, 16px)) !important;
    padding-right: max(16px, var(--sp-3, 16px)) !important;
}

/* Section trực tiếp chứa text/heading (không có .container wrapper) — fallback */
main > section > h1:first-child,
main > section > h2:first-child,
main > section > h3:first-child,
main > section > p:first-child,
main > section > .lead:first-child {
    padding-left: 16px;
    padding-right: 16px;
}

/* Body chống horizontal overflow — tránh thừa thanh cuộn ngang */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

/* iOS notch safe-area — bắt buộc khi thiết bị có notch */
@supports (padding: max(0px)) {
    .container {
        padding-left: max(16px, env(safe-area-inset-left, 16px)) !important;
        padding-right: max(16px, env(safe-area-inset-right, 16px)) !important;
    }
}

/* Image/video không vượt quá viewport */
img, video, iframe, picture, svg {
    max-width: 100% !important;
    height: auto;
}

/* Table dài → cuộn ngang trong wrapper, không phá viewport */
table {
    max-width: 100% !important;
}

}  /* end @media max-width:992px */

/* ── 9. Hide scrollbars on horizontal-scroll thumb rows ──────────────── */
@media (max-width: 768px) {
    .product-thumbs::-webkit-scrollbar { height: 0; }
    .product-thumbs { scrollbar-width: none; }

    /* Cart float button — ensure tap target */
    .cart-floating {
        width: 48px !important;
        height: 48px !important;
    }
}
