/* ==========================================================
   ALANGKARA — Global Mobile Responsive Stylesheet
   Loaded on every page via includes/navbar.php
   ========================================================== */

/* ── 1. GLOBAL BASE ── */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; }
body { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
img, video, iframe { max-width: 100%; height: auto; }
@media (max-width: 991px) {
    body { padding-top: 0 !important; }
}

/* ── 1a. HIDE DESKTOP NAVBAR ON MOBILE ── */
@media (max-width: 767px) {
    .navbar-modern { display: none !important; }
    .category-navbar { display: none !important; }
}

/* ── 1b. PROMO BANNER MOBILE ── */
@media (max-width: 767px) {
    .promo-banner {
        padding: 6px 10px !important;
        margin: 0 !important;
    }
    .promo-banner p {
        font-size: .72rem !important;
        letter-spacing: 0.2px !important;
    }
}

/* ── 2. NAVBAR DROPDOWN FIXES ── */
@media (max-width: 767.98px) {
    /* Gemstones mega-dropdown: was 520px inline */
    .category-navbar .dropdown-menu,
    .navbar-modern .dropdown-menu {
        min-width: 0 !important;
        width: 95vw !important;
        max-width: 95vw !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
    }
    /* Language / currency panel */
    .lc-menu {
        min-width: 0 !important;
        width: 92vw !important;
        right: 0 !important;
        left: auto !important;
    }
    /* Dropdown columns → single column */
    .dropdown-menu .row { flex-direction: column; }
    .dropdown-menu .col-12.col-md-6 { width: 100% !important; max-width: 100% !important; }
}

/* ── 3. HERO SECTIONS (all pages) ── */
@media (max-width: 767px) {
    /* Shared hero class patterns */
    .gem-hero,
    .cat-hero,
    .page-hero,
    .luxury-hero,
    .hero-section,
    .products-header,
    .search-header,
    .section-hero {
        padding: 40px 0 28px !important;
    }
    .gem-hero h1,
    .cat-hero h1,
    .page-hero h1,
    .luxury-hero h1,
    .hero-section h1,
    .products-header h1 {
        font-size: clamp(1.5rem, 6vw, 2rem) !important;
    }
    .gem-hero p,
    .cat-hero p,
    .page-hero p,
    .lead { font-size: .9rem !important; }
}

/* ── 4. TYPOGRAPHY SCALING ── */
@media (max-width: 575px) {
    h1 { font-size: clamp(1.4rem, 6vw, 2rem) !important; }
    h2 { font-size: clamp(1.2rem, 5vw, 1.6rem) !important; }
    h3 { font-size: clamp(1rem, 4.5vw, 1.3rem) !important; }
    h4 { font-size: clamp(.95rem, 4vw, 1.1rem) !important; }
    .section-title  { font-size: clamp(1.3rem, 5vw, 1.8rem) !important; }
    .display-4, .display-5 { font-size: clamp(1.5rem, 6vw, 2.2rem) !important; }
}

/* ── 5. PRODUCT CARD GRIDS ── */
@media (max-width: 575px) {
    /* Force 2 columns for product card rows */
    .row.g-4 > [class*="col-6"],
    .row.g-3 > [class*="col-6"] {
        padding-left: 6px;
        padding-right: 6px;
    }
    .row.g-4 { --bs-gutter-x: 12px; --bs-gutter-y: 12px; }
    .row.g-3 { --bs-gutter-x: 10px; --bs-gutter-y: 10px; }

    /* Product card — clean elevated look */
    .product-card {
        border-radius: 14px !important;
        overflow: hidden !important;
        border: none !important;
        box-shadow: 0 2px 12px rgba(0,0,0,0.08) !important;
    }

    /* Image — show the FULL product image, no cropping on mobile */
    .product-card img,
    .product-image-wrapper img {
        height: 200px !important;
        object-fit: contain !important;
        background: #fff !important;
        padding: 6px !important;
    }

    /* Badges — tiny compact tags */
    .product-badges {
        top: 6px !important;
        left: 6px !important;
        right: auto !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 3px !important;
    }
    .product-badge {
        font-size: .5rem !important;
        padding: 2px 5px !important;
        border-radius: 4px !important;
        letter-spacing: 0.2px !important;
        gap: 2px !important;
        box-shadow: 0 1px 3px rgba(0,0,0,0.25) !important;
        backdrop-filter: none !important;
        line-height: 1.2 !important;
    }
    .product-badge i {
        font-size: .45rem !important;
        display: none !important;
    }

    /* Card body — compact spacing */
    .product-card .card-body {
        padding: 10px !important;
    }
    .product-card .card-title {
        font-size: .88rem !important;
        line-height: 1.3 !important;
        margin-bottom: 4px !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .product-card .card-text {
        font-size: .75rem !important;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 6px !important;
        color: #888 !important;
    }

    /* Price — clear and prominent */
    .product-price-block { margin-bottom: 6px !important; }
    .price-regular { font-size: 1.05rem !important; }
    .price-sale    { font-size: 1.1rem !important; }
    .price-original{ font-size: .72rem !important; }
    .price-discount-pill { font-size: .58rem !important; padding: 2px 6px !important; margin-left: 4px !important; }

    /* Shipping info */
    .shipping-info { font-size: .72rem !important; margin-bottom: 6px !important; }

    /* Add to cart button — compact */
    .btn-add-cart {
        font-size: .78rem !important;
        padding: 8px 8px !important;
        border-radius: 8px !important;
        gap: 4px !important;
    }
    .btn-view-details-soldout {
        font-size: .78rem !important;
        padding: 7px 8px !important;
        border-radius: 8px !important;
    }
    .soldout-note { font-size: .7rem !important; }

    /* Sold out ribbon — scaled */
    .soldout-ribbon { font-size: .5rem !important; width: 110px !important; top: 16px !important; right: -32px !important; padding: 5px 0 !important; }

    /* Hover overlay — tap friendly */
    .product-overlay .btn-quick-view {
        font-size: .78rem !important;
        padding: 8px 16px !important;
        min-width: auto !important;
    }
    .product-overlay .btn-cart-overlay {
        font-size: .78rem !important;
        padding: 8px 16px !important;
        min-width: auto !important;
    }
}

/* ── 5a2. UNCROPPED PRODUCT IMAGES — EVERY PAGE, WHOLE MOBILE-NAV RANGE ──
   Product photos in grids, wrappers AND horizontal scroll carousels show in
   full (no cropping) wherever the mobile bottom-nav is active (<= 991.98px).
   The extra selectors (.card-img-top) match the shared product-card-styles
   rule specificity; !important + these win over inline object-fit:cover.
   Height is left to each context's own rule. */
@media (max-width: 991.98px) {
    .product-card img,
    .product-card .card-img-top,
    .product-image-wrapper img,
    .product-scroll-item img {
        object-fit: contain !important;
        background: #fff !important;
    }
}

/* ── 5b. PRODUCT CARD — MEDIUM MOBILE (576-767px) ── */
@media (min-width: 576px) and (max-width: 767px) {
    .product-card img,
    .product-image-wrapper img { height: 220px !important; object-fit: contain !important; background: #fff !important; padding: 6px !important; }
    .product-badges { top: 8px !important; left: 8px !important; flex-direction: row !important; gap: 4px !important; }
    .product-badge { font-size: .55rem !important; padding: 2px 6px !important; border-radius: 4px !important; gap: 2px !important; }
    .product-badge i { font-size: .5rem !important; display: none !important; }
    .product-card .card-body { padding: 12px !important; }
    .product-card .card-title { font-size: .95rem !important; }
    .product-card .card-text { font-size: .8rem !important; -webkit-line-clamp: 2; }
    .btn-add-cart { font-size: .85rem !important; padding: 10px 10px !important; }
    .shipping-info { font-size: .78rem !important; margin-bottom: 6px !important; }
}

/* ── 6. PRODUCT DETAIL PAGE (product.php) ── */
@media (max-width: 767px) {
    /* Main image */
    #mainImage { max-height: 320px; object-fit: contain; }

    /* Thumbnails strip → horizontal scroll */
    .thumbnail-container,
    .product-thumbnails {
        display: flex; overflow-x: auto; gap: 8px;
        flex-wrap: nowrap; padding-bottom: 6px;
        scrollbar-width: thin;
    }
    .product-thumbnails img,
    .thumbnail-container img { width: 64px !important; height: 64px !important; flex-shrink: 0; }

    /* Feature items → 2-column grid */
    .product-features { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .feature-item { flex-direction: column; align-items: flex-start; gap: 6px; }
    .feature-icon { width: 36px !important; height: 36px !important; font-size: .9rem !important; }
    .feature-text strong { font-size: .82rem; }
    .feature-text span   { font-size: .75rem; }

    /* Action buttons */
    .action-buttons,
    .product-actions { flex-direction: column; gap: 10px; }
    .action-buttons .btn,
    .product-actions .btn { width: 100%; }

    /* Quantity selector */
    .quantity-selector,
    .qty-selector { gap: 6px; }
    .qty-btn { width: 36px !important; height: 36px !important; font-size: .9rem !important; }

    /* Ring size selector */
    .ring-size-selector select { max-width: 100% !important; }

    /* Specs table */
    .meta-row  { flex-direction: column; gap: 2px; }
    .meta-label { min-width: unset !important; font-size: .82rem; }
    .meta-value { font-size: .88rem; }

    /* Related products scroll on very small screens */
    .product-title { font-size: 1.4rem !important; }
}
@media (max-width: 575px) {
    .product-features { grid-template-columns: 1fr; }
    #mainImage { max-height: 260px; }
}

/* ── 7. CART PAGE (cart.php) ── */
@media (max-width: 767px) {
    /* Cart item row → stack */
    .cart-item { flex-direction: column !important; }
    .cart-item img { width: 100% !important; max-height: 180px; object-fit: cover; border-radius: 8px; }
    .cart-item .cart-item-details { width: 100% !important; }

    /* Order summary always full width */
    .order-summary { position: static !important; }

    /* Table-like cart → use smaller fonts */
    .cart-table td, .cart-table th { font-size: .82rem; padding: 8px 6px !important; }
    .cart-product-img { width: 60px !important; height: 60px !important; }
}

/* ── 8. INDEX PAGE ── */
@media (max-width: 767px) {
    /* Hero video/image section */
    .hero-slide,
    .hero-banner { min-height: 55vh !important; }
    .hero-content h1 { font-size: clamp(1.4rem, 6vw, 2rem) !important; }
    .hero-content p  { font-size: .88rem !important; }
    .hero-content .btn { padding: 10px 20px !important; font-size: .88rem !important; }

    /* Stats / info strip */
    .stats-section .col-6,
    .trust-badges .col-6 { margin-bottom: 8px; }

    /* Category grid on index */
    .category-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .category-grid-last-two { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .category-image { height: 130px !important; }

    /* Section headings */
    .section-header h2 { font-size: 1.5rem !important; }
    .ornament-line { display: none; }
}
@media (max-width: 575px) {
    .category-grid { gap: 8px !important; }
    .category-grid-last-two { gap: 8px !important; }
    .category-image { height: 110px !important; }
}

/* ── 9. GEMSTONE PAGE ── */
@media (max-width: 767px) {
    /* Browse cards → 3 per row on phones */
    #cat-gemstones .row.g-3 > div,
    .gem-browse-card-wrap { width: 33.33% !important; }

    /* Color cards */
    .gem-color-card { min-height: 100px !important; padding: 18px 8px !important; }
    .gem-color-icon  { font-size: 1.3rem !important; }
    .gem-color-card-name { font-size: .82rem !important; }
    .gem-color-card-count { font-size: .65rem !important; }
    .gem-browse-card { padding: 16px 8px 14px !important; }
    .gem-browse-card-icon { width: 48px !important; height: 48px !important; font-size: 1.1rem !important; }
    .gem-browse-card-name { font-size: .82rem !important; }

    /* Stats strip on categories.php */
    .stats-strip { padding: 20px 16px !important; }
    .stat-num { font-size: 1.5rem !important; }

    /* Browse section title */
    .browse-section-title { font-size: 1.3rem !important; }
    .section-gem-title { font-size: 1.1rem !important; }
}
@media (max-width: 575px) {
    /* Browse cards → 2 per row on very small phones */
    .col-6.col-sm-4.col-md-3.col-lg-2 { width: 50% !important; }
}

/* ── 10. CATEGORIES PAGE ── */
@media (max-width: 575px) {
    .cat-card-img-wrap { height: 150px !important; }
    .cat-featured-card .cat-card-img-wrap { height: 180px !important; }
    .cat-card-name { font-size: .95rem !important; }
    .cat-card-sub  { font-size: .72rem !important; }
    .cat-card-body { padding: 12px 14px 14px !important; }
    .quick-links { gap: 6px !important; padding: 12px 16px !important; }
    .quick-link-btn { font-size: .72rem !important; padding: 5px 10px !important; }
}

/* ── 11. LOGIN / SIGNUP PAGES ── */
@media (max-width: 575px) {
    .auth-card,
    .login-card,
    .signup-card { padding: 1.5rem 1.2rem !important; margin: 0 8px !important; }
    .auth-card h2,
    .login-header h2,
    .signup-header h2 { font-size: 1.4rem !important; }
    .form-control { font-size: .9rem !important; }
    .btn-auth,
    .btn-login,
    .btn-signup { padding: 11px 16px !important; font-size: .95rem !important; }
}

/* ── 12. CONTACT PAGE ── */
@media (max-width: 767px) {
    .contact-info-card { margin-bottom: 20px; }
    .contact-map { height: 250px !important; }
    .search-input { width: 100% !important; max-width: 100% !important; }
    .search-form  { width: 100% !important; }
}

/* ── 13. ACCOUNT / ORDERS PAGES ── */
@media (max-width: 767px) {
    .account-sidebar { margin-bottom: 20px; }
    .order-card      { padding: 14px !important; }
    .order-item-img  { width: 56px !important; height: 56px !important; }
}

/* ── 14. ABOUT / BLOG / STATIC PAGES ── */
@media (max-width: 767px) {
    .blog-card-img { height: 180px !important; }
    .team-member img { width: 100px !important; height: 100px !important; }
    .policy-card { padding: 20px 16px !important; }
    .policy-title { font-size: 1.6rem !important; }
    .policy-list li { font-size: .88rem !important; }
}

/* ── 15. SALE / NEW ARRIVALS PAGES ── */
@media (max-width: 575px) {
    .sale-badge,
    .new-badge { font-size: .65rem !important; padding: 4px 9px !important; }
}

/* ── 16. SEARCH PAGE ── */
@media (max-width: 767px) {
    .search-results-header { flex-direction: column; gap: 10px; align-items: flex-start; }
    .sort-bar { width: 100% !important; }
}

/* ── 17. MODALS & OVERLAYS ── */
@media (max-width: 575px) {
    .modal-dialog { margin: 8px !important; }
    .modal-body   { padding: 1rem !important; }
}

/* ── 18. FLOATING BUTTONS ── */
@media (max-width: 767px) {
    .floating-whatsapp { bottom: 80px !important; right: 16px !important; }
    .floating-whatsapp a { width: 50px !important; height: 50px !important; font-size: 22px !important; }
    .back-to-top { bottom: 90px !important; right: 14px !important; width: 40px !important; height: 40px !important; font-size: 14px !important; }
}

/* ── 19. TABLES ── */
@media (max-width: 767px) {
    .table-responsive-stack thead { display: none; }
    .table-responsive-stack tr    { display: block; border-bottom: 1px solid #dee2e6; padding: 8px 0; }
    .table-responsive-stack td    { display: block; text-align: right; padding: 4px 8px; }
    .table-responsive-stack td::before { content: attr(data-label); float: left; font-weight: 600; color: #6c757d; }
    /* Shrink normal tables */
    .table td, .table th { font-size: .82rem !important; padding: 8px 6px !important; }
    .table-sm td, .table-sm th { font-size: .78rem !important; }
}

/* ── 20. FOOTER ── */
@media (max-width: 767px) {
    footer .row > div { margin-bottom: 20px; }
    footer h5, footer h6 { font-size: 1rem !important; }
    footer p, footer a  { font-size: .83rem !important; }
    .footer-social a { width: 34px !important; height: 34px !important; font-size: 14px !important; }
    .payment-methods img { height: 22px !important; }
}

/* ── 21. UTILITIES ── */
@media (max-width: 575px) {
    .d-xs-none { display: none !important; }
    .text-xs-center { text-align: center !important; }
    .w-xs-100 { width: 100% !important; }
    .gap-xs-2 { gap: 8px !important; }
    /* Badge & pill text shrink */
    .badge { font-size: .7rem !important; }
    .btn   { font-size: .88rem; }
    .btn-sm { font-size: .78rem !important; }
    /* Reduce section padding globally */
    section { padding: 40px 0 !important; }
    .py-5   { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
    .py-4   { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
}

/* ── 22. TOUCH TARGETS ── */
@media (max-width: 767px) {
    a, button, [role="button"], input[type="submit"],
    input[type="button"], select {
        -webkit-tap-highlight-color: transparent;
    }
    /* Ensure minimum 44px touch target */
    .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    .nav-link { min-height: 44px; display: flex !important; align-items: center; }
}

/* ── 23. SAFE AREA (iPhone notch) ── */
@supports (padding: max(0px)) {
    @media (max-width: 767px) {
        .mobile-bottom-nav { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
        body { padding-left:  max(0px, env(safe-area-inset-left));
               padding-right: max(0px, env(safe-area-inset-right)); }
    }
}

/* ── 24. MOBILE BOTTOM NAV + SLIDE-IN DRAWER (sitewide, markup in includes/navbar.php) ── */
.mobile-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #ffffff;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    display: none;
    z-index: 1000;
    border-top: 1px solid rgba(212, 175, 55, 0.2);
    padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
}

@media (max-width: 991.98px) {
    .mobile-bottom-nav {
        display: flex;
        justify-content: space-around;
        align-items: center;
    }

    body {
        padding-bottom: calc(72px + env(safe-area-inset-bottom));
    }

    /* Push the footer clear of the fixed bottom nav so it is never hidden.
       Uses !important + safe-area so it wins over per-page inline footer rules
       and clears the taller nav on notched phones. */
    footer {
        margin-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    }
}

.mobile-bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    text-decoration: none;
    color: #757575;
    font-size: 11px;
    font-weight: 500;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    min-width: 64px;
    border-radius: 16px;
    -webkit-tap-highlight-color: transparent;
    flex: 1;
}

.mobile-bottom-nav-item i {
    font-size: 24px;
    margin-bottom: 4px;
    transition: all 0.2s ease;
}

.mobile-bottom-nav-item span {
    font-size: 10px;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.mobile-bottom-nav-item.active {
    color: var(--primary-color);
}

.mobile-bottom-nav-item.active i {
    transform: scale(1.1);
    color: var(--primary-color);
}

.mobile-bottom-nav-item:active {
    transform: scale(0.95);
    background: rgba(212, 175, 55, 0.1);
}

.mobile-bottom-nav-item::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(212, 175, 55, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.4s, height 0.4s;
    pointer-events: none;
}

.mobile-bottom-nav-item:active::before {
    width: 80px;
    height: 80px;
}

.mobile-bottom-nav-badge {
    position: absolute;
    top: 4px;
    right: 8px;
    background: #f44336;
    color: white;
    border-radius: 10px;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: bold;
    padding: 0 4px;
    border: 2px solid white;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.mobile-nav-drawer {
    position: fixed;
    top: 0;
    left: -100%;
    width: 85%;
    max-width: 320px;
    height: 100%;
    background: #ffffff;
    z-index: 1050;
    transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 2px 0 20px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
}

.mobile-nav-drawer.show {
    left: 0;
}

.mobile-nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1040;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.mobile-nav-overlay.show {
    opacity: 1;
    visibility: visible;
}

.mobile-nav-header {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.mobile-nav-header .logo {
    height: 40px;
}

.mobile-nav-close {
    background: rgba(0, 0, 0, 0.1);
    border: none;
    color: #000;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.mobile-nav-close:active {
    transform: scale(0.9);
    background: rgba(0, 0, 0, 0.2);
}

.mobile-nav-search {
    padding: 16px;
    border-bottom: 1px solid #e5e5e5;
}

.mobile-nav-search .form-control {
    border-radius: 24px;
    padding: 12px 20px;
    font-size: 16px;
    border: 2px solid #e5e5e5;
}

.mobile-nav-search .form-control:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(212, 175, 55, 0.25);
}

.mobile-nav-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0;
}

.mobile-nav-item {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    color: #333;
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.mobile-nav-item:active {
    background: rgba(212, 175, 55, 0.1);
}

.mobile-nav-item.active {
    background: rgba(212, 175, 55, 0.1);
    color: var(--primary-color);
    border-left: 4px solid var(--primary-color);
    padding-left: 16px;
}

.mobile-nav-item i {
    width: 24px;
    margin-right: 16px;
    color: var(--primary-color);
    font-size: 20px;
}

.mobile-nav-item.has-submenu::after {
    content: '\f105';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-left: auto;
    color: #999;
    transition: transform 0.2s ease;
}

.mobile-nav-item.has-submenu.open::after {
    transform: rotate(90deg);
}

.mobile-nav-submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #f8f9fa;
}

.mobile-nav-submenu.show {
    max-height: 1000px;
}

.mobile-nav-submenu-item {
    display: block;
    padding: 12px 20px 12px 60px;
    color: #666;
    text-decoration: none;
    font-size: 15px;
    border-bottom: 1px solid #e5e5e5;
    transition: all 0.2s ease;
}

.mobile-nav-submenu-item:active {
    background: rgba(212, 175, 55, 0.1);
    color: var(--primary-color);
}

.mobile-nav-footer {
    padding: 20px;
    border-top: 1px solid #e5e5e5;
    background: #f8f9fa;
}

.mobile-nav-footer .btn {
    width: 100%;
    margin-bottom: 10px;
    border-radius: 24px;
    padding: 12px;
    font-weight: 600;
}

/* Prevent body scroll when drawer is open */
body.drawer-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
}

/* Bottom nav: final word — visible only on phones (<=767px), hidden on tablets/desktop */
.mobile-bottom-nav { display: none; }
@media (max-width: 767px) {
    .mobile-bottom-nav {
        display: flex !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1100 !important;
        background: #fff !important;
        border-top: 1px solid rgba(212,175,55,0.25) !important;
        box-shadow: 0 -2px 16px rgba(0,0,0,0.1) !important;
        padding: 6px 0 !important;
        padding-bottom: max(6px, env(safe-area-inset-bottom)) !important;
        justify-content: space-around !important;
        align-items: center !important;
    }
    .mobile-bottom-nav-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        color: #666 !important;
        text-decoration: none !important;
        font-size: 10px !important;
        min-width: 56px !important;
        gap: 3px !important;
        -webkit-tap-highlight-color: transparent !important;
    }
    .mobile-bottom-nav-item i { font-size: 18px !important; }
    .mobile-bottom-nav-item.active { color: var(--primary-color) !important; }
    .mobile-bottom-nav-item:active { transform: scale(0.92) !important; }
    .mobile-bottom-nav-badge {
        position: absolute !important;
        top: -4px !important;
        right: -6px !important;
        background: #e53935 !important;
        color: #fff !important;
        font-size: 9px !important;
        padding: 1px 4px !important;
        border-radius: 10px !important;
        font-weight: 700 !important;
    }
}
