/*
 * VG Mobile Catalog Modern v1.0.16
 * Modernises ONLY the native Chameleon mobile Catalog drawer.
 * Desktop and the separate hamburger/account menu are not changed.
 * v1.0.12 adds a non-translated overlay stack for iOS Safari.
 * v1.0.13 prevents Safari long-press link activation inside the drawer.
 * v1.0.14 supports explicit active-panel tracking for deep navigation.
 * v1.0.15 adds an in-panel loading veil for terminal category navigation.
 * v1.0.16 keeps pressed parent cards untransformed so their nested full-screen
 * panels cannot shrink and expose a different category layer on long press.
 */

@media (min-width: 768px) {
  #vg-mobile-catalog-modern-v100 {
    display: none;
  }
}

/* iOS Safari: keep the catalogue root in place and layer child screens over it.
   WebKit can otherwise move the root off-screen before painting the absolutely
   positioned nested level, which leaves the drawer completely white. */
@media (max-width: 767px) {
  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left {
    overflow: hidden !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    transition: none !important;
  }

  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-second-level,
  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-third-level {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #f6f8f7 !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    transition: none !important;
  }

  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-second-level:not(.d-none) {
    display: block !important;
    z-index: 80 !important;
  }

  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-third-level:not(.d-none) {
    display: block !important;
    z-index: 90 !important;
  }

  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-second-level.d-none,
  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .mob-third-level.d-none {
    display: none !important;
  }

  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .m-mm-list-item,
  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left .m-mm-list-item > a,
  html.vg-ios-mobile-catalog-v114 body #mob-catalog-left button {
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    touch-action: manipulation !important;
  }
}

@media (max-width: 767px) {
  html body #mob-catalog-left .vg-catalog-page-loader {
    position: absolute !important;
    inset: 0 !important;
    z-index: 250 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 11px !important;
    width: 100% !important;
    height: 100% !important;
    padding: 24px !important;
    color: #31423a !important;
    background: rgba(246, 248, 247, .91) !important;
    -webkit-backdrop-filter: blur(1.5px);
    backdrop-filter: blur(1.5px);
    pointer-events: all !important;
    touch-action: none !important;
    animation: vg-catalog-loader-appear .12s ease-out both;
  }

  html body #mob-catalog-left .vg-catalog-page-loader__spinner {
    display: block !important;
    width: 32px !important;
    height: 32px !important;
    border: 3px solid rgba(24, 169, 105, .20) !important;
    border-top-color: #18a969 !important;
    border-radius: 50% !important;
    animation: vg-catalog-loader-spin .72s linear infinite;
  }

  html body #mob-catalog-left .vg-catalog-page-loader__text {
    display: block !important;
    font-family: Inter, Montserrat, "Segoe UI", Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    letter-spacing: -.03px !important;
  }

  html body #mob-catalog-left .vg-catalog-card-loading {
    background: #f0faf5 !important;
  }

  @keyframes vg-catalog-loader-spin {
    to { transform: rotate(360deg); }
  }

  @keyframes vg-catalog-loader-appear {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  /* Wider drawer, while keeping a narrow blurred backdrop visible. */
  html body .mob-menu-info-fixed-left {
    width: min(94vw, 390px) !important;
    min-width: 0 !important;
    max-width: 390px !important;
    overflow: hidden !important;
    background: #f6f8f7 !important;
    border-right: 1px solid rgba(214, 224, 218, .95) !important;
    box-shadow: 16px 0 38px rgba(20, 42, 30, .16) !important;
  }

  html body .ch-bg-mob {
    background: rgba(20, 28, 24, .38) !important;
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }

  /* Catalog screen */
  html body #mob-catalog-left.mob-menu {
    background: #f6f8f7 !important;
    pointer-events: auto !important;
  }

  html body .mob-menu-info-fixed-left.active #mob-catalog-left,
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .mob-second-level:not(.d-none),
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .mob-third-level:not(.d-none),
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .mobm-top,
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .m-mm-list-item,
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .m-mm-list-item > a,
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .show-sc-mobile,
  html body .mob-menu-info-fixed-left.active #mob-catalog-left .mobm-close-menu {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  html body #mob-catalog-left .m-mm-list-item,
  html body #mob-catalog-left .m-mm-list-item > a,
  html body #mob-catalog-left .show-sc-mobile,
  html body #mob-catalog-left .mm-icon-come-back,
  html body #mob-catalog-left .mobm-close-menu {
    touch-action: manipulation !important;
  }

  /* Modern fixed header for level 1 / 2 / 3. */
  html body #mob-catalog-left .mobm-top,
  html body #mob-catalog-left .mob-second-level .mobm-top,
  html body #mob-catalog-left .mob-third-level .mobm-top {
    position: relative !important;
    min-height: 64px !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 58px !important;
    margin: 0 !important;
    background: rgba(255, 255, 255, .98) !important;
    border: 0 !important;
    border-bottom: 1px solid #e7ece9 !important;
    box-shadow: 0 4px 14px rgba(24, 50, 35, .045) !important;
    z-index: 20 !important;
  }

  html body #mob-catalog-left .mobm-top::after,
  html body #mob-catalog-left .mob-second-level .mobm-top::after,
  html body #mob-catalog-left .mob-third-level .mobm-top::after {
    display: none !important;
    content: none !important;
  }

  html body #mob-catalog-left .mobm-title,
  html body #mob-catalog-left .mob-second-level .mobm-title,
  html body #mob-catalog-left .mob-third-level .mobm-title {
    display: block !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: #202923 !important;
    font-size: 17px !important;
    font-weight: 750 !important;
    line-height: 22px !important;
    letter-spacing: -.1px !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  /* Back control: rounded square at the left. */
  html body #mob-catalog-left .mm-icon-come-back {
    position: absolute !important;
    left: 10px !important;
    top: 10px !important;
    width: 44px !important;
    height: 44px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    color: #45514a !important;
    background: #f4f7f5 !important;
    border: 1px solid #e3e9e5 !important;
    border-radius: 13px !important;
    box-shadow: none !important;
  }

  html body #mob-catalog-left .mm-icon-come-back svg {
    width: 16px !important;
    height: 16px !important;
    color: currentColor !important;
  }

  /* Close control: same visual language as Back. */
  html body #mob-catalog-left .mobm-close-menu {
    position: absolute !important;
    right: 10px !important;
    top: 10px !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: #f4f7f5 !important;
    background-size: 12px !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    border: 1px solid #e3e9e5 !important;
    border-radius: 13px !important;
    box-shadow: none !important;
  }

  html body #mob-catalog-left .mobm-close-menu:active,
  html body #mob-catalog-left .mm-icon-come-back:active {
    background-color: #eaf5ef !important;
    border-color: #cfe6d8 !important;
  }

  /* Scrollable area with breathing room. */
  html body #mob-catalog-left > .mobm-body,
  html body #mob-catalog-left .mob-second-level > .m-mm-list,
  html body #mob-catalog-left .mob-third-level > .m-mm-list {
    background: #f6f8f7 !important;
    scrollbar-width: thin !important;
    scrollbar-color: #cdd9d2 transparent !important;
    -webkit-overflow-scrolling: touch !important;
  }

  html body #mob-catalog-left > .mobm-body {
    height: calc(100% - 64px) !important;
    padding: 10px 10px 18px !important;
  }

  html body #mob-catalog-left #mm-mobile,
  html body #mob-catalog-left .mob-second-level > .m-mm-list,
  html body #mob-catalog-left .mob-third-level > .m-mm-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  html body #mob-catalog-left .mob-second-level,
  html body #mob-catalog-left .mob-third-level {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 100% !important;
    width: 100% !important;
    height: auto !important;
    background: #f6f8f7 !important;
  }

  html body #mob-catalog-left .mob-second-level:not(.d-none) {
    z-index: 40 !important;
  }

  html body #mob-catalog-left .mob-third-level:not(.d-none) {
    z-index: 50 !important;
  }

  html body #mob-catalog-left .mob-second-level > .m-mm-list,
  html body #mob-catalog-left .mob-third-level > .m-mm-list {
    height: calc(100% - 64px) !important;
    padding: 10px 10px 18px !important;
  }

  /* Modern category cards. */
  html body #mob-catalog-left .m-mm-list > .m-mm-list-item {
    /* Nested screens must be positioned from the catalogue, not a 56px card. */
    position: static !important;
    min-height: 56px !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: space-between !important;
    gap: 4px !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    border: 1px solid #e5ebe7 !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 13px rgba(25, 53, 38, .045) !important;
    transition: background .16s ease, border-color .16s ease, transform .12s ease, box-shadow .16s ease !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item:not(:first-child) {
    border-top: 1px solid #e5ebe7 !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item:last-child {
    margin-bottom: 0 !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item > a {
    min-width: 0 !important;
    min-height: 54px !important;
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 9px 8px 9px 13px !important;
    color: #303a35 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 19px !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item > a > span:not(.cat-label) {
    min-width: 0 !important;
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Existing category images, when configured in Chameleon. */
  html body #mob-catalog-left .m-mm-list .mobile-menu-icon {
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    flex: 0 0 34px !important;
    margin: 0 !important;
    padding: 4px !important;
    object-fit: contain !important;
    background: #f1f8f4 !important;
    border: 1px solid #e2eee7 !important;
    border-radius: 10px !important;
  }

  /* Right chevron gets its own subtle touch target. */
  html body #mob-catalog-left .m-mm-list .show-sc-mobile {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    align-self: center !important;
    display: grid !important;
    place-items: center !important;
    margin: 5px 5px 5px 0 !important;
    padding: 0 !important;
    color: #64716a !important;
    background: #f4f7f5 !important;
    border: 1px solid #e7ece9 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  html body #mob-catalog-left .m-mm-list .show-sc-mobile svg {
    width: 8px !important;
    height: 13px !important;
    color: currentColor !important;
  }

  html body #mob-catalog-left .m-mm-list .show-sc-mobile svg path {
    fill: currentColor !important;
  }

  /* Sticker/label stays compact instead of covering the category name. */
  html body #mob-catalog-left .m-mm-list .cat-label {
    position: static !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    padding: 4px 7px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  /* Touch feedback. */
  html body #mob-catalog-left .m-mm-list > .m-mm-list-item:active {
    transform: none !important;
    -webkit-transform: none !important;
    border-color: #cfe7d9 !important;
    background: #f3faf6 !important;
    box-shadow: 0 2px 8px rgba(25, 53, 38, .04) !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item:active > a {
    color: #087b46 !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item:active > .show-sc-mobile {
    color: #078a4d !important;
    background: #e9f7ef !important;
    border-color: #cce8d7 !important;
  }

  @media (hover: hover) {
    html body #mob-catalog-left .m-mm-list > .m-mm-list-item:hover {
      border-color: #cfe7d9 !important;
      background: #f7fcf9 !important;
      box-shadow: 0 6px 18px rgba(22, 62, 40, .065) !important;
    }

    html body #mob-catalog-left .m-mm-list > .m-mm-list-item:hover > a {
      color: #087b46 !important;
    }

    html body #mob-catalog-left .m-mm-list > .m-mm-list-item:hover > .show-sc-mobile {
      color: #078a4d !important;
      background: #e9f7ef !important;
      border-color: #cce8d7 !important;
    }
  }

  /* First-level list gets a small section caption feeling through spacing,
     without adding new text or changing menu logic. */
  html body #mob-catalog-left #mm-mobile {
    padding-top: 1px !important;
  }

  /* Smooth, modern layer transitions; Chameleon's JS still controls transform. */
  html body #mob-catalog-left,
  html body #mob-catalog-left .mob-second-level,
  html body #mob-catalog-left .mob-third-level {
    transition: transform .25s cubic-bezier(.22, .72, .24, 1) !important;
  }
}

@media (max-width: 390px) {
  html body .mob-menu-info-fixed-left {
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
  }

  html body #mob-catalog-left .m-mm-list > .m-mm-list-item > a {
    font-size: 14.5px !important;
  }
}

/* ========================================================================
   VG Mobile Catalog Modern v1.0.1 — DESKTOP TYPOGRAPHY
   Same typography as the desktop catalog:
   Inter -> Montserrat -> Segoe UI -> Arial
   ======================================================================== */
@media (max-width: 767px) {
  html body #mob-catalog-left,
  html body #mob-catalog-left a,
  html body #mob-catalog-left button,
  html body #mob-catalog-left span,
  html body #mob-catalog-left .mobm-title,
  html body #mob-catalog-left .m-mm-list > .m-mm-list-item > a {
    font-family: Inter, Montserrat, "Segoe UI", Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
  }

  /* First-level category: exactly the desktop catalog typography. */
  html body #mob-catalog-left #mm-mobile > .m-mm-list-item > a {
    color: #33433c !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.34 !important;
    letter-spacing: -0.08px !important;
  }

  /* Second-level items match desktop submenu typography. */
  html body #mob-catalog-left .mob-second-level > .m-mm-list > .m-mm-list-item > a {
    color: #33433c !important;
    font-size: 13.25px !important;
    font-weight: 500 !important;
    line-height: 1.36 !important;
    letter-spacing: -0.05px !important;
  }

  /* Third level is slightly stronger, same as desktop group headings. */
  html body #mob-catalog-left .mob-third-level > .m-mm-list > .m-mm-list-item > a {
    color: #26372f !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.08px !important;
  }

  html body #mob-catalog-left .mobm-title,
  html body #mob-catalog-left .mob-second-level .mobm-title,
  html body #mob-catalog-left .mob-third-level .mobm-title {
    font-family: Inter, Montserrat, "Segoe UI", Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.03px !important;
  }
}
