/* Zarvan Elementor Mobile Menu */
.zemm-root{position:relative;
  --zemm-tap-bg: rgba(0,0,0,.08);
  --zemm-hover-bg: rgba(0,0,0,.05);
  --zemm-focus-ring: rgba(0,0,0,.35);
  --zemm-submenu-bg: rgba(0,0,0,.035);
}

/* Prevent ugly long-press / tap highlight colors on mobile browsers (esp. iOS Safari)
   and neutralize theme focus/active styles from leaking into the widget. */
.zemm-root,
.zemm-root *{
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
}

/* Allow text selection on menu items, but keep buttons non-selectable */
.zemm-root a{
  -webkit-user-select: text;
  user-select: text;
}
.zemm-root button{
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

/* Swipe capture zone (edge) */
.zemm-swipe-zone{
  position:fixed;
  top:0;
  bottom:0;
  width:24px;
  background:transparent;
  z-index:9999;
  pointer-events:none;
  touch-action:none;
}

/* Keep our focus-visible ring, but strip theme focus backgrounds/shadows */
.zemm-root a:focus,
.zemm-root button:focus{
  outline: none;
  box-shadow: none;
}

.zemm-root .zemm-trigger:focus{background:transparent !important;}
.zemm-root .zemm-close:focus{background:rgba(0,0,0,.06) !important;}
.zemm-root .zemm-subtoggle:focus{background:transparent !important;}
.zemm-root .zemm-menu a:focus{background:var(--zemm-hover-bg) !important;}

/* Trigger */
.zemm-trigger{
  -webkit-appearance:none;
  appearance:none;
  border:0;
  background:transparent;
  padding:8px;
  margin:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1;
  user-select:none;
  z-index:10002;
  position:relative;
  border-radius:12px;
  transition:background .16s ease, transform .08s ease;
}
.zemm-trigger:hover{background:var(--zemm-hover-bg) !important;}
.zemm-trigger:active{background:var(--zemm-tap-bg) !important;transform:translateY(1px);}
.zemm-trigger:focus-visible{outline:2px solid var(--zemm-focus-ring);outline-offset:2px;}
.zemm-trigger .zemm-trigger-icon{display:inline-flex;align-items:center;justify-content:center;}
.zemm-trigger .elementor-icon,
.zemm-close .elementor-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;}
.zemm-trigger svg{width:24px;height:24px;display:block;}
.zemm-trigger .zemm-trigger-label{font-size:14px;}

/* Overlay */
.zemm-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
  z-index:10000;
}

/* Swipe capture zone (edge). Enabled/positioned by JS via inline styles. */
.zemm-swipe-zone{
  position:fixed;
  top:0;
  bottom:0;
  width:24px;
  background:transparent;
  z-index:9999;
  pointer-events:none;
  touch-action:none;
}

/* Panel */
.zemm-panel{
  position:fixed;
  top:0;
  bottom:0;
  width:var(--zemm-panel-width, 270px);
  max-width:100vw;
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  z-index:10001;
  transform:translateX(110%);
  transition:transform .24s ease;
  display:flex;
  flex-direction:column;
  overscroll-behavior:contain;
}

.zemm-root[data-side="left"] .zemm-panel{left:0;right:auto;transform:translateX(-110%);} 
.zemm-root[data-side="right"] .zemm-panel{right:0;left:auto;transform:translateX(110%);} 

.zemm-root.is-open .zemm-overlay{opacity:1;visibility:visible;pointer-events:auto;}
.zemm-root.is-open[data-side="left"] .zemm-panel{transform:translateX(0);} 
.zemm-root.is-open[data-side="right"] .zemm-panel{transform:translateX(0);} 

body.zemm-scroll-lock{overflow:hidden;}

/* Header + Close */
.zemm-panel-header{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:12px 12px 8px;
  flex:0 0 auto;
}
.zemm-close{
  -webkit-appearance:none;
  appearance:none;
  border:0;
  background:rgba(0,0,0,.06);
  color:#111;
  width:40px;
  height:40px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  line-height:0;
  padding:0;
  transition:background .16s ease, transform .08s ease;
}
.zemm-close svg{width:18px;height:18px;display:block;}
.zemm-close:hover{background:var(--zemm-hover-bg) !important;}
.zemm-close:active{background:var(--zemm-tap-bg) !important;transform:translateY(1px);}
.zemm-close:focus-visible{outline:2px solid var(--zemm-focus-ring);outline-offset:2px;}

/* Menu */
.zemm-menu-wrap{padding:6px 12px 16px; overflow:auto; -webkit-overflow-scrolling:touch;}
.zemm-menu{list-style:none;margin:0;padding:0;}
.zemm-menu li{margin:0;padding:0;}
.zemm-menu a{
  display:block;
  padding:12px 10px;
  color:#111;
  text-decoration:none;
  border-radius:12px;
  transition:background .16s ease, transform .08s ease;
}
.zemm-menu a:hover{background:var(--zemm-hover-bg) !important;}
.zemm-menu a:active{background:var(--zemm-tap-bg) !important;transform:translateY(1px);}
.zemm-menu a:focus-visible{outline:2px solid var(--zemm-focus-ring);outline-offset:2px;}
.zemm-root .zemm-menu a:focus,
.zemm-root .zemm-menu a:active,
.zemm-root .zemm-menu a:focus-visible{
  /* Freeze link color to the computed value captured by JS to avoid theme long-press colors */
  color:var(--zemm-link-color-fixed, #111) !important;
}
.zemm-menu li + li > a{margin-top:2px;}

/* Submenu accordion */
.zemm-menu .sub-menu{
  list-style:none;
  margin:4px 0 10px;
  padding:6px;
  display:none;
  width:100%;
  border-radius:14px;
  background:var(--zemm-submenu-bg);
  position:relative;
}
.zemm-menu li.is-subopen > .sub-menu{display:block;}

/* Indentation that works in RTL/LTR */
.zemm-menu .sub-menu{padding-inline-start:14px;}

.zemm-menu .sub-menu a{
  padding:10px 10px;
  font-size:13px;
  color:rgba(0,0,0,.85);
}
.zemm-root .zemm-menu .sub-menu a:focus,
.zemm-root .zemm-menu .sub-menu a:active,
.zemm-root .zemm-menu .sub-menu a:focus-visible{
  color:var(--zemm-sublink-color-fixed, rgba(0,0,0,.85)) !important;
}
.zemm-menu .sub-menu a::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:currentColor;
  opacity:.35;
  display:inline-block;
  margin-inline-end:10px;
  transform:translateY(-1px);
}

/* A subtle guide line for submenu (RTL/LTR aware) */
:dir(rtl) .zemm-menu .sub-menu{border-right:2px solid rgba(0,0,0,.08);}
:dir(ltr) .zemm-menu .sub-menu{border-left:2px solid rgba(0,0,0,.08);}

.zemm-subtoggle{
  -webkit-appearance:none;
  appearance:none;
  border:0;
  background:transparent;
  width:42px;
  height:42px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
  border-radius:12px;
  color:rgba(0,0,0,.65) !important;
  transition:background .16s ease, transform .08s ease, color .16s ease;
}
.zemm-subtoggle:hover{background:var(--zemm-hover-bg) !important;color:rgba(0,0,0,.85) !important;}
.zemm-subtoggle:active{background:var(--zemm-tap-bg) !important;transform:translateY(1px);}
.zemm-subtoggle:focus-visible{outline:2px solid var(--zemm-focus-ring);outline-offset:2px;}
.zemm-subtoggle:focus,
.zemm-subtoggle:active,
.zemm-subtoggle:focus-visible{
  color:rgba(0,0,0,.85) !important;
}
.zemm-subtoggle::before{
  content:"";
  width:10px;
  height:10px;
  border:2px solid currentColor;
  border-left:0;
  border-top:0;
  transform:rotate(45deg);
  display:block;
}
.zemm-menu li.is-subopen > .zemm-subtoggle::before{transform:rotate(-135deg);} 

/* Make li with children a flex row for link + toggle */
.zemm-menu li.menu-item-has-children{display:flex;flex-wrap:wrap;align-items:center;}
.zemm-menu li.menu-item-has-children > a{flex:1 1 auto;}
.zemm-menu li.menu-item-has-children > .sub-menu{flex:1 1 100%;}

/* Default: hide on desktop (mobile/tablet only). This is overridden by widget setting by adding data-visibility */
@media (min-width: 1025px){
  .zemm-root[data-visibility="mobile_tablet"]{display:none;}
}
@media (min-width: 768px){
  .zemm-root[data-visibility="mobile"]{display:none;}
}


.zemm-trigger i{font-size:24px;line-height:1;display:block;}
.zemm-close i{font-size:18px;line-height:1;display:block;}
