/* Core off-canvas styles */
/* Global custom properties (safe defaults, override in overrides file) */
:root {
  --cmm-item-pad-y: 16px;
  --cmm-item-pad-x: 20px;
  --cmm-sub-item-pad-y: 8px;
  --cmm-sub-item-pad-x: 24px;
  --cmm-sub-item-pad-left: 36px;
}

#mobile_menu[data-cmm-menu],
#cmm_mobile_menu {
  background: #fff;
  left: -300px;
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 0;
  transition: all 0.3s linear;
  width: 300px;
  height: 100%;
  z-index: 9999;
  padding: 40px 11px 20px;
  overflow-y: auto;
}
#mobile_menu[data-cmm-menu].active,
#cmm_mobile_menu.active {
  left: 0;
  opacity: 1;
  visibility: visible;
}
.canvas-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s linear;
}
.canvas-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ================= Drilldown Sliding Panels ================= */
.cmm-panels { position:relative; width:100%; height:100%; overflow:hidden; }
.cmm-panel { position:absolute; inset:0; background:#fff; list-style:none; margin:0; padding:0 0 60px 0; width:100%; height:100%; overflow-y:auto; -webkit-overflow-scrolling:touch; transform:translateX(100%); transition:transform .35s ease; }
.cmm-panel-root { position:relative; transform:translateX(0); }
.cmm-panel.active { transform:translateX(0); z-index:2; }
.cmm-panel-prev { transform:translateX(-100%); z-index:1; }
.cmm-panel-exit-right { transform:translateX(100%); z-index:1; }
ul.sub-menu.cmm-panel { display:block !important; }
.cmm-arrow { display:inline-flex; align-items:center; justify-content:center; margin-left:auto; padding-left:12px; }
li.cmm-has-children { display:flex; align-items:center; }
li.cmm-has-children > a { flex:1; display:flex; align-items:center; padding-right:8px; }
li.cmm-has-children > a .menu-item-title { flex:1; text-align:left; }
.cmm-arrow-btn { flex:0 0 42px; height:42px; display:flex; align-items:center; justify-content:center; background:#fff; border:0; cursor:pointer; position:relative; border-left:1px solid #eee; }
.cmm-arrow-btn:hover { background:#f7f7f7; }
.cmm-arrow-btn i,.cmm-arrow-btn svg { pointer-events:none; }
.cmm-panel .cmm-back { display:flex; align-items:center; gap:10px; padding:14px 18px; font-weight:600; cursor:pointer; border-bottom:1px solid #eee; background:#fafafa; position:sticky; top:0; z-index:5; }
.cmm-panel .cmm-back:hover { background:#f0f0f0; }
.cmm-panel .cmm-back-text { flex:1; font-size:14px; line-height:1.2; }
.cmm-panel > li > a { padding:10px 20px; display:block; }
li.active-parent > a { background:#f7f7f7; }
.cmm-panel::-webkit-scrollbar { width:8px; }
.cmm-panel::-webkit-scrollbar-thumb { background:#ccc; border-radius:4px; }
.cmm-panel::-webkit-scrollbar-thumb:hover { background:#aaa; }
#mobile_menu[data-cmm-menu] .rbb-close-canvas-menu,
#cmm_mobile_menu .rbb-close-canvas-menu {
  position: relative;
}
#mobile_menu[data-cmm-menu] ul,
#cmm_mobile_menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#mobile_menu[data-cmm-menu] li,
#cmm_mobile_menu li {
  position: relative;
}
#mobile_menu[data-cmm-menu] .opener,
#mobile_menu[data-cmm-menu] .opener2,
#cmm_mobile_menu .opener,
#cmm_mobile_menu .opener2 {
  display: none;
}
@media (max-width: 1024px) {
  #mobile_menu[data-cmm-menu] .opener,
  #mobile_menu[data-cmm-menu] .opener2,
  #cmm_mobile_menu .opener,
  #cmm_mobile_menu .opener2 {
    display: block;
  }
}
#mobile_menu[data-cmm-menu] .sub-menu,
#cmm_mobile_menu .sub-menu {
  display: none;
  padding-left: 10px;
}
#mobile_menu[data-cmm-menu] li.submenu-open > ul.sub-menu,
#cmm_mobile_menu li.submenu-open > ul.sub-menu {
  display: block;
}
/* Basic fadeInLeft mimic */
.fadeInLeft {
  animation: fadeInLeft 0.5s both;
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.toggle-megamenu {
  display: inline-block;
}

/* =====================================================================
	 Custom Mobile Menu - Original Theme CSS Clone
	 ===================================================================== */

/* Toggle button (hamburger) – theme-like styling but standalone */
.cmm-toggle,
.toggle-megamenu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 48px;
  height: 48px;
  cursor: pointer;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
  --cmm-bar-color: #000;
  transition: background 0.3s;
}
.cmm-toggle:before,
.cmm-toggle:after,
.cmm-toggle .icon-directional:before,
.toggle-megamenu:before,
.toggle-megamenu:after,
.toggle-megamenu .icon-directional:before {
  content: "";
  position: absolute;
  left: 14px;
  width: 20px;
  height: 2px;
  background: var(--cmm-bar-color);
  border-radius: 2px;
  transition: all 0.35s ease;
}
.cmm-toggle:before,
.toggle-megamenu:before {
  top: 16px;
}
.cmm-toggle:after,
.toggle-megamenu:after {
  bottom: 16px;
}
.cmm-toggle .icon-directional:before,
.toggle-megamenu .icon-directional:before {
  top: 23px;
}
.cmm-toggle[aria-expanded="true"]:before,
.toggle-megamenu[aria-expanded="true"]:before {
  transform: translateY(7px) rotate(45deg);
}
.cmm-toggle[aria-expanded="true"]:after,
.toggle-megamenu[aria-expanded="true"]:after {
  transform: translateY(-7px) rotate(-45deg);
}
.cmm-toggle[aria-expanded="true"] .icon-directional:before,
.toggle-megamenu[aria-expanded="true"] .icon-directional:before {
  opacity: 0;
}
.cmm-toggle:focus-visible {
  outline: 2px solid var(--cmm-bar-color);
  outline-offset: 2px;
}

/* Fallback opener SVG styling */
.cmm-opener-fallback { display:inline-block; vertical-align:middle; }

/* Search form redesigned */
.cmm-search-form {
  margin: 0 0 25px;
}
.cmm-search-wrapper {
  --cmm-search-height: 52px;
  --cmm-search-radius: 50px;
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: var(--cmm-search-radius);
  padding: 0 70px 0 52px;
  min-height: var(--cmm-search-height);
}
.cmm-search-wrapper:before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  background: currentColor;
  opacity: 0;
}
.cmm-search-icon-left {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: #222;
}
.cmm-search-input {
  border: none;
  background: transparent;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  width: 100%;
  padding: 0;
  margin: 0;
  color: #222;
}
.cmm-search-input:focus {
  outline: none;
}
.cmm-clear {
  position: absolute;
  right: 70px;
  top: 50%;
  transform: translateY(-50%);
  color: #999;
  font-size: 14px;
}
.cmm-search-submit {
  position: absolute;
  top: 50%;
  right: 4px;
  transform: translateY(-50%);
  background: #222;
  color: #fff;
  border: none;
  border-radius: calc(var(--cmm-search-radius) - 6px);
  height: 44px;
  width: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s;
}
.cmm-search-submit:hover {
  background: var(--rbb-general-primary-color, #000);
}
.cmm-search-submit-icon {
  font-size: 18px;
}
.cmm-search-input::placeholder {
  color: #a0a0a0;
  font-weight: 400;
}
.cmm-search-wrapper:focus-within {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}

/* Core off-canvas container (exact from theme with legacy opacity fallbacks) */
#mobile_menu,
#cmm_mobile_menu {
  background: #fff;
  filter: alpha(opacity=0);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  height: 100%;
  left: -300px;
  -webkit-opacity: 0;
  -moz-opacity: 0;
  -ms-opacity: 0;
  -o-opacity: 0;
  opacity: 0;
  padding: 40px 11px 20px;
  position: fixed !important;
  top: 0;
  transition: all 0.3s linear;
  visibility: hidden;
  width: 300px;
  z-index: 9999;
  overflow-y: auto;
}
#mobile_menu .cmm-inner,
#cmm_mobile_menu .cmm-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#mobile_menu .rbb-main-navigation,
#cmm_mobile_menu .rbb-main-navigation {
  overflow-y: auto;
}
#mobile_menu .mobile_bottom,
#cmm_mobile_menu .mobile_bottom {
  margin-top: auto;
}
#mobile_menu .menu-container > li:first-child,
#cmm_mobile_menu .menu-container > li:first-child {
  margin-top: 0;
}
#mobile_menu .menu-container > li,
#cmm_mobile_menu .menu-container > li {
  list-style: none;
}
#mobile_menu.active,
#cmm_mobile_menu.active {
  filter: alpha(opacity=100);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  left: 0;
  -webkit-opacity: 1;
  -moz-opacity: 1;
  -ms-opacity: 1;
  -o-opacity: 1;
  opacity: 1;
  visibility: visible;
}
#mobile_menu.active .rbb_results,
#cmm_mobile_menu.active .rbb_results {
  opacity: 0;
}

/* Close button replicated */
#mobile_menu .rbb-close-canvas-menu,
#cmm_mobile_menu .rbb-close-canvas-menu {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.102);
  cursor: pointer;
  position: relative;
  transition: all 0.35s linear;
  width: 48px;
  height: 48px;
}
#mobile_menu .rbb-close-canvas-menu:after,
#mobile_menu .rbb-close-canvas-menu:before,
#cmm_mobile_menu .rbb-close-canvas-menu:after,
#cmm_mobile_menu .rbb-close-canvas-menu:before {
  background-color: #000;
  content: "";
  height: 1px;
  left: calc(50% - 8px);
  position: absolute;
  top: 50%;
  transform-origin: center;
  transition: transform 0.3s linear;
  width: 16px;
}
#mobile_menu .rbb-close-canvas-menu:before,
#cmm_mobile_menu .rbb-close-canvas-menu:before {
  transform: rotate(45deg);
}
#mobile_menu .rbb-close-canvas-menu:after,
#cmm_mobile_menu .rbb-close-canvas-menu:after {
  transform: rotate(-45deg);
}
#mobile_menu .rbb-close-canvas-menu:hover:after,
#mobile_menu .rbb-close-canvas-menu:hover:before,
#cmm_mobile_menu .rbb-close-canvas-menu:hover:after,
#cmm_mobile_menu .rbb-close-canvas-menu:hover:before {
  transform: rotate(0deg);
}

/* Close button before/after animation states */
#mobile_menu .rbb-close-canvas-menu[data-state="lines"]:before,
#mobile_menu .rbb-close-canvas-menu[data-state="lines"]:after,
#cmm_mobile_menu .rbb-close-canvas-menu[data-state="lines"]:before,
#cmm_mobile_menu .rbb-close-canvas-menu[data-state="lines"]:after {
  transform: rotate(0deg);
}
#mobile_menu .rbb-close-canvas-menu[data-state="lines"]:before,
#cmm_mobile_menu .rbb-close-canvas-menu[data-state="lines"]:before {
  top: calc(50% - 6px);
}
#mobile_menu .rbb-close-canvas-menu[data-state="lines"]:after,
#cmm_mobile_menu .rbb-close-canvas-menu[data-state="lines"]:after {
  top: calc(50% + 6px);
}

/* Submenu toggles (markup relies on utility classes; add minimal fallback) */
#mobile_menu .opener,
#mobile_menu .opener2,
#cmm_mobile_menu .opener,
#cmm_mobile_menu .opener2 {
  display: none;
}
@media (max-width: 1024px) {
  #mobile_menu .opener,
  #mobile_menu .opener2,
  #cmm_mobile_menu .opener,
  #cmm_mobile_menu .opener2 {
    display: block;
  }
}

/* Sub-menus hidden until JS toggles class */
#mobile_menu .sub-menu,
#cmm_mobile_menu .sub-menu {
  display: none;
  padding-left: 10px;
}
#mobile_menu li.submenu-open > ul.sub-menu,
#cmm_mobile_menu li.submenu-open > ul.sub-menu {
  display: block;
}

/* Mobile bottom section animation helper */
.fadeInLeft {
  animation: fadeInLeft 0.5s both;
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

/* Overlay identical behavior */
.canvas-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s linear;
}
.canvas-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Responsive adjustments from theme */
@media (max-width: 767px) {
  body #mobile_menu,
  body #cmm_mobile_menu {
    width: 80%;
  }
  body #mobile_menu .rbb-main-navigation,
  body #cmm_mobile_menu .rbb-main-navigation {
    height: calc(100% - 220px);
  }
}

/* Optional: ensure high stacking over typical site elements */
body.admin-bar #mobile_menu,
body.admin-bar #cmm_mobile_menu {
  top: 32px;
}


/* =====================================================================
	Modern Hover Search (replacement input variant) - scoped
	===================================================================== */
#mobile_menu .cmm-modern-search,
#cmm_mobile_menu .cmm-modern-search {
  padding: 10px 0 30px;
}
#mobile_menu .cmm-modern-search .search__title,
#cmm_mobile_menu .cmm-modern-search .search__title {
  font-size: 22px;
  font-weight: 900;
  text-align: center;
  color: #ff8b88;
  margin: 0 0 12px;
}
#mobile_menu .cmm-modern-search-form,
#cmm_mobile_menu .cmm-modern-search-form {
  margin: 0;
}
#mobile_menu .cmm-modern-search .search__input,
#cmm_mobile_menu .cmm-modern-search .search__input {
  width: 100%;
  display: block;
  padding: 12px 24px;
  font-size: 14px;
  line-height: 18px;
  color: #575756;
  background: transparent;
  border: 1px solid #575756;
  border-radius: 50px;
  transition: all 250ms ease-in-out;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: 95% center;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23575756' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5z'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E");
}
#mobile_menu .cmm-modern-search .search__input.no-bg-icon,
#cmm_mobile_menu .cmm-modern-search .search__input.no-bg-icon {
  background-image: none;
  position: relative;
  padding-right: 50px;
}
#mobile_menu .cmm-modern-search .search__input.no-bg-icon:after,
#cmm_mobile_menu .cmm-modern-search .search__input.no-bg-icon:after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 18px;
  height: 18px;
  border: 2px solid #575756;
  border-radius: 50%;
  transform: translateY(-50%);
}
#mobile_menu .cmm-modern-search .search__input.no-bg-icon:before,
#cmm_mobile_menu .cmm-modern-search .search__input.no-bg-icon:before {
  content: "";
  position: absolute;
  right: 12px;
  top: calc(50% + 5px);
  width: 7px;
  height: 2px;
  background: #575756;
  transform: rotate(45deg) translateY(-50%);
  border-radius: 2px;
}
#mobile_menu .cmm-modern-search .search__input::placeholder,
#cmm_mobile_menu .cmm-modern-search .search__input::placeholder {
  color: rgba(87, 87, 86, 0.8);
  text-transform: uppercase;
  letter-spacing: 1.5px;
}
#mobile_menu .cmm-modern-search .search__input:hover,
#mobile_menu .cmm-modern-search .search__input:focus,
#cmm_mobile_menu .cmm-modern-search .search__input:hover,
#cmm_mobile_menu .cmm-modern-search .search__input:focus {
  padding: 12px 0;
  border: 1px solid transparent;
  border-bottom: 1px solid #575756;
  border-radius: 0;
  outline: 0;
  background-position: 100% center;
}
#mobile_menu .cmm-modern-search .search__input:focus,
#cmm_mobile_menu .cmm-modern-search .search__input:focus {
  box-shadow: none;
}

/* ---------------------------------------------------------------------
	 Scoped overrides: neutralize global button styles inside plugin menu
	 (site sets generic styles on button, .button, .elementor-button, etc.)
	 --------------------------------------------------------------------- */
#mobile_menu button,
#cmm_mobile_menu button {
  font-size: 14px !important;
  font-family: inherit !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  line-height: 1 !important;
  white-space: normal !important;
  box-shadow: none !important;
  transition: none !important;
}

/* Re‑apply intended styling for specific functional buttons */
#mobile_menu .rbb-close-canvas-menu,
#cmm_mobile_menu .rbb-close-canvas-menu {
  background: #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.102) !important;
  width: 48px !important;
  height: 48px !important;
  padding: 0 !important;
}

#mobile_menu .cmm-search-submit,
#cmm_mobile_menu .cmm-search-submit {
  background: #222 !important;
  border-radius: calc(var(--cmm-search-radius) - 6px) !important;
  width: 60px !important;
  height: 44px !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1 !important;
  box-shadow: none !important;
  transition: background 0.3s !important;
}

#mobile_menu .cmm-search-submit:hover,
#cmm_mobile_menu .cmm-search-submit:hover {
  background: var(--rbb-general-primary-color, #000) !important;
}

#cmm-modern-search-input {
  /* Inline SVG icon (percent-encoded). Some optimizers strip unescaped chars; provide fallback base64 below */
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M15.5%2014h-.79l-.28-.27C15.41%2012.59%2016%2011.11%2016%209.5%2016%205.91%2013.09%203%209.5%203S3%205.91%203%209.5%205.91%2016%209.5%2016c1.61%200%203.09-.59%204.23-1.57l.27.28v.79l5%204.99L20.49%2019l-4.99-5zm-6%200C7.01%2014%205%2011.99%205%209.5S7.01%205%209.5%205%2014%207.01%2014%209.5%2011.99%2014%209.5%2014z'/%3E%3Cpath%20d='M0%200h24v24H0z'%20fill='none'/%3E%3C/svg%3E") !important;
  /* Fallback (base64) */
  background-image: image-set(url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBkPSdNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHonLz48cGF0aCBkPSdNMCAwaDI0djI0SDB6JyBmaWxsPSdub25lJy8+PC9zdmc+") 1x) !important;
  background-repeat: no-repeat;
  background-size: 18px 18px;
  background-position: 95% center;
  border-radius: 50px;
}

/* (Removed duplicate drilldown CSS block that conflicted with earlier panel system) */

/* =====================================================================
   Menu Item Spacing (stable definition placed at end for precedence)
   ===================================================================== */
#mobile_menu .menu-container > li > a,
#cmm_mobile_menu .menu-container > li > a { display:block; padding:14px 24px; padding:var(--cmm-item-pad-y) var(--cmm-item-pad-x); line-height:1.4; }
#mobile_menu .sub-menu > li > a,
#cmm_mobile_menu .sub-menu > li > a { display:block; padding:8px 24px 8px 36px; padding:var(--cmm-sub-item-pad-y) var(--cmm-sub-item-pad-x) var(--cmm-sub-item-pad-y) var(--cmm-sub-item-pad-left); font-size:14px; line-height:1.4; }
#mobile_menu .menu-container > li > a .menu-item-title,
#cmm_mobile_menu .menu-container > li > a .menu-item-title { display:inline-block; }

/* ================= Drilldown refinement fixes ================= */
/* Ensure panels fill available space without manual JS sizing */
#mobile_menu .cmm-panels, #cmm_mobile_menu .cmm-panels { position:relative; height:100%; }
#mobile_menu .cmm-panel, #cmm_mobile_menu .cmm-panel { top:0; left:0; width:100%; padding:0 0 60px 0; }
#mobile_menu .cmm-panel-root, #cmm_mobile_menu .cmm-panel-root { position:relative; }

/* Back button styling & visibility */
#mobile_menu .cmm-panel .cmm-back, #cmm_mobile_menu .cmm-panel .cmm-back { display:flex; align-items:center; gap:10px; padding:14px 18px; font-weight:600; border-bottom:1px solid #ececec; background:#fafafa; position:sticky; top:0; z-index:5; }
#mobile_menu .cmm-panel .cmm-back:hover, #cmm_mobile_menu .cmm-panel .cmm-back:hover { background:#f0f0f0; }
#mobile_menu .cmm-back-icon, #cmm_mobile_menu .cmm-back-icon { display:inline-flex; width:16px; height:16px; align-items:center; justify-content:center; }
#mobile_menu .cmm-back-icon svg, #cmm_mobile_menu .cmm-back-icon svg { display:block; }

/* Consistent row flex layout so arrow button aligns and line not broken */
#mobile_menu li.cmm-has-children, #cmm_mobile_menu li.cmm-has-children { display:flex; align-items:center; }
#mobile_menu li.cmm-has-children > a, #cmm_mobile_menu li.cmm-has-children > a { flex:1; display:flex; align-items:center; min-height:48px; }
#mobile_menu li.cmm-has-children > a .menu-item-title, #cmm_mobile_menu li.cmm-has-children > a .menu-item-title { flex:1; }
#mobile_menu .cmm-arrow-btn, #cmm_mobile_menu .cmm-arrow-btn { flex:0 0 46px; height:48px; border-left:1px solid #ececec; background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
#mobile_menu .cmm-arrow-btn:hover, #cmm_mobile_menu .cmm-arrow-btn:hover { background:#f7f7f7; }

/* Inner panel link padding adjust to avoid double indents after detaching */
#mobile_menu .cmm-panel:not(.cmm-panel-root) > li > a, #cmm_mobile_menu .cmm-panel:not(.cmm-panel-root) > li > a { padding:12px 18px 12px 24px; }

/* Smooth horizontal slide (root stays) */
#mobile_menu .cmm-panel, #cmm_mobile_menu .cmm-panel { transition:transform .35s ease; }

/* Prevent content jump when scrollbar shows */
#mobile_menu .cmm-panel::-webkit-scrollbar, #cmm_mobile_menu .cmm-panel::-webkit-scrollbar { width:8px; }
#mobile_menu .cmm-panel::-webkit-scrollbar-thumb, #cmm_mobile_menu .cmm-panel::-webkit-scrollbar-thumb { background:#c7c7c7; border-radius:4px; }

/* Active parent highlight */
#mobile_menu li.active-parent > a, #cmm_mobile_menu li.active-parent > a { background:#f7f7f7; }

/* =====================================================================
  Unified minimal separators between items (applies to both modes)
  ---------------------------------------------------------------------
  Approach: place a single 1px top border on every li that follows another
  sibling. Avoids double borders and keeps visual rhythm consistent between
  toggle and panels modes. Borders live on <li> so full row (including arrow
  button area) is divided.
  ===================================================================== */
:root { --cmm-divider-color: #e0e0e0; }
/* Apply bottom border to every item (except last) so first item also has a visible separator */
#mobile_menu .menu-container > li,
#cmm_mobile_menu .menu-container > li,
#mobile_menu .cmm-panel > li,
#cmm_mobile_menu .cmm-panel > li { border-bottom:1px solid var(--cmm-divider-color) !important; }
#mobile_menu .menu-container > li:last-child,
#cmm_mobile_menu .menu-container > li:last-child,
#mobile_menu .cmm-panel > li:last-child,
#cmm_mobile_menu .cmm-panel > li:last-child { border-bottom:none !important; }
/* Ensure legacy anchor borders stay suppressed */
#mobile_menu .cmm-panel > li > a,
#cmm_mobile_menu .cmm-panel > li > a { border:0 !important; }

