@charset "UTF-8";
/* -------------------------------------------------------------------------
   Shared mobile menu overlay (#mobileMenu) — home, category, checkout.
   Loaded via base.html + base-checkout.html. Desktop: menu stays hidden.
   ------------------------------------------------------------------------- */
.mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10070;
  background: #8C8B3E;
  flex-direction: column;
  padding: 80px 40px 40px;
  gap: 0;
  overflow-y: auto;
  box-sizing: border-box; }

.mobile-menu.open {
  display: flex; }

.mobile-menu-close {
  position: absolute;
  top: 20px;
  right: 24px;
  background: none;
  border: none;
  cursor: pointer;
  color: #fff;
  font-size: 28px;
  line-height: 1; }

.mobile-menu a {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  transition: color 0.2s; }

.mobile-menu a:hover {
  color: #fff; }

.mobile-menu-flat-link {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  transition: color 0.2s; }

.mobile-menu-flat-link:hover {
  color: #fff; }

.mobile-menu-group {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15); }

.mobile-menu-parent-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px; }

.mobile-menu-parent-link,
.mobile-menu-parent-toggle {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.2s; }

.mobile-menu-parent-link {
  flex: 1 1 auto;
  width: 100%;
  display: block;
  padding: 18px 0;
  text-decoration: none;
  text-align: left; }

.mobile-menu-parent-toggle {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 32px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 18px 0 18px 12px; }

.mobile-menu-parent-link:hover,
.mobile-menu-parent-toggle:hover {
  color: #fff; }

.mobile-menu-parent-toggle::after {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  margin-left: 12px;
  flex-shrink: 0;
  border-right: 2px solid rgba(255, 255, 255, 0.75);
  border-bottom: 2px solid rgba(255, 255, 255, 0.75);
  transform: rotate(45deg);
  transition: transform 0.25s ease; }

.mobile-menu-parent-toggle[aria-expanded="true"]::after {
  transform: rotate(225deg);
  margin-top: 4px; }

.mobile-menu-children {
  display: flex;
  flex-direction: column;
  padding: 0 0 14px 4px;
  gap: 0; }

.mobile-menu-children[hidden] {
  display: none !important; }

.mobile-menu-viewall {
  font-size: 14px;
  letter-spacing: 1.2px;
  padding: 12px 0 12px 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  opacity: 0.95;
  display: block; }

.mobile-menu-subcat {
  padding: 8px 0 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1); }

.mobile-menu-subcat:last-of-type {
  border-bottom: none; }

.mobile-menu-subcat-title {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1.5px;
  padding: 8px 0 4px 8px;
  display: block;
  border-bottom: none !important; }

/* Product rows (JS injects .navPage-childList-item + links) */
#mobileMenu .navPage-childList.navPage-childList--subcategoryProducts.mobile-menu-product-list {
  display: block !important;
  list-style: none;
  margin: 4px 0 8px 0;
  padding: 0 0 0 12px;
  border-left: 2px solid rgba(255, 255, 255, 0.25); }

#mobileMenu .mobile-menu-product-list .navPage-childList-item {
  list-style: none;
  margin: 0;
  padding: 0;
  border: none; }

#mobileMenu .mobile-menu-product-list .navPage-childList-action,
#mobileMenu .mobile-menu-product-list .navPages-action {
  display: block;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.8px;
  text-transform: none;
  color: rgba(255, 255, 255, 0.88) !important;
  text-decoration: none;
  padding: 8px 0 8px 8px;
  border-bottom: none !important;
  line-height: 1.35; }

#mobileMenu .mobile-menu-product-list a:hover {
  color: #fff !important; }

.mobile-menu-children a {
  font-size: 14px;
  letter-spacing: 1.2px;
  padding: 12px 0 12px 12px;
  border-bottom: none;
  opacity: 0.95; }

.mobile-menu-logo {
  margin-bottom: 32px; }

.mobile-menu-logo img {
  height: 48px;
  width: auto; }

/* Hide legacy SHOP fallback when category accordion groups exist (home + checkout) */
#mobileMenu:has(.mobile-menu-group) #ectMobileShopFallback,
#mobileMenu #ectMobileShopFallback[aria-hidden="true"] {
  display: none !important; }

/* Desktop: never show full-screen mobile overlay */
@media (min-width: 861px) {
  #mobileMenu,
  .mobile-menu,
  .mobile-menu.open {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important; } }
