/* ========== CORE LAYOUT ========== */
.custom-header{background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:12px 20px;position:sticky;top:0;min-height:30px;z-index:2000}
.header-container{display:flex;align-items:center;max-width:1040px;margin:0 auto}
.header-left{display:flex;align-items:center}
.site-logo{max-height:50px;width:220px}
.header-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.login-icon{display:inline-flex;align-items:center;line-height:0}

/* ========== HAMBURGER ========== */
.menu-toggle{display:block;background:none;border:0;cursor:pointer;width:25px;height:20px;position:relative;z-index:3100}
.menu-icon-line{display:block;width:100%;height:3px;background-color:currentColor;position:absolute;left:0;transition:all .3s ease}
.menu-icon-line:nth-child(1){top:0}
.menu-icon-line:nth-child(2){top:50%;transform:translateY(-50%)}
.menu-icon-line:nth-child(3){bottom:0}
.menu-toggle.is-active .menu-icon-line:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.menu-toggle.is-active .menu-icon-line:nth-child(2){opacity:0}
.menu-toggle.is-active .menu-icon-line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* ========== OFF-CANVAS (MOBILE & DESKTOP TRIGGERED) ========== */
/* hidden by default until .is-active */
.off-canvas-menu-wrapper{
  display:none;position:fixed;inset:0;pointer-events:none;z-index:3000;
}
.off-canvas-overlay{
  position:absolute;inset:0;background:rgba(0,0,0,.5);
  opacity:0;transition:opacity .28s ease-in-out;
}
.off-canvas-menu{
  position:absolute;top:0;right:0;bottom:0;           /* fill wrapper */
  width:85vw;max-width:360px;
  height:auto;                                        /* no fixed height */
  max-height:100dvh;                                  /* mobile-safe viewport */
  background:#fff;padding:16px 20px;
  box-shadow:-2px 0 18px rgba(0,0,0,.18);
  transform:translateX(100%);transition:transform .28s ease-in-out;
  overflow-y:auto;                                    /* scroll here */
  -webkit-overflow-scrolling:touch;                   /* iOS smooth */
  overscroll-behavior: contain;                       /* stop body scroll chaining */
}
.off-canvas-menu-wrapper.is-active{display:block;pointer-events:auto;}
.off-canvas-menu-wrapper.is-active .off-canvas-menu{transform:translateX(0);}
.off-canvas-menu-wrapper.is-active .off-canvas-overlay{opacity:1;}

/* ========== DESKTOP BAR (HORIZONTAL SCROLL) ========== */
.desktop-navigation{display:block;min-height:44px;text-align:center;background:#000;color:#fff;white-space:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;}
.desktop-navigation::-webkit-scrollbar{height:6px;}
.desktop-navigation:hover{scrollbar-width:thin;}
.desktop-navigation:hover::-webkit-scrollbar-thumb{background:rgba(0,0,0,.35);border-radius:3px;}
.desktop-navigation .menu--desktop{list-style:none;margin:0;padding:0}
.desktop-navigation .menu--desktop>li{position:relative;display:inline-block;margin-left:20px}
.desktop-navigation .menu--desktop>li>a{padding:10px 0;display:inline-block;line-height:24px;text-decoration:none;color:inherit}

/* Desktop dropdowns */
.desktop-navigation .menu--desktop>li>.sub-menu{
  position:absolute;left:0;top:100%;min-width:220px;background:#fff;border:1px solid rgba(0,0,0,.08);
  box-shadow:0 8px 24px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.18s ease;z-index:2000
}
.desktop-navigation .menu--desktop>li:hover>.sub-menu{opacity:1;visibility:visible;transform:none}
.desktop-navigation .menu--desktop .sub-menu{list-style:none;margin:0;padding:6px 0}
.desktop-navigation .menu--desktop .sub-menu li a{display:block;padding:10px 14px;color:#111;text-decoration:none;white-space:nowrap}
.desktop-navigation{display:block;}
.menu-toggle{display:block;}

/* ========== MOBILE STACKED SUBMENU (NO JS) ========== */
.off-canvas-menu .menu--mobile{list-style:none;margin:0;padding:0;display:block !important;} /* override any theme flex */
.off-canvas-menu .menu--mobile>li.menu-item-has-children{
  margin:10px 0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;
}
.off-canvas-menu .menu--mobile>li.menu-item-has-children>a{
  display:block;padding:12px 14px;font-weight:600;color:#111;text-decoration:none;border-bottom:1px solid #e5e7eb;
}
.off-canvas-menu .menu--mobile>li.menu-item-has-children>.sub-menu{
  display:block;position:static;max-height:none;overflow:visible;margin:0;padding:6px 0;border:0;background:transparent;
}
.off-canvas-menu .menu--mobile>li.menu-item-has-children>.sub-menu li a{
  display:block;padding:10px 22px;color:#222;text-decoration:none;font-size:14px;border-bottom:1px solid #eef2f6;
}
.off-canvas-menu .menu--mobile>li.menu-item-has-children>.sub-menu li:last-child a{border-bottom:none;}
.off-canvas-menu .menu--mobile>.menu-item:not(.menu-item-has-children)>a{
  display:block;padding:12px 2px;border:0;color:inherit;text-decoration:none;
}

/* Kill old mobile toggles/left-borders if any */
.off-canvas-menu .submenu-toggle{display:none !important;}
.off-canvas-menu li .sub-menu{border-left:0;margin-left:0}