/* =========================
   KZ CATEGORY DRAWER
   ========================= */

.kz-drawer-wrap,
.kz-drawer-wrap *{
  box-sizing:border-box;
}

.kz-drawer-wrap{
  direction:rtl;
  -webkit-tap-highlight-color:transparent;
  outline:none;
  user-select:none;
  font-family:inherit;
}

/* =========================
   TRIGGER BUTTON
   ========================= */

.kz-drawer-trigger{
  width:58px;
  height:58px;
  border:none;
  border-radius:50%;
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 18px rgba(0,0,0,.08);
  border:1px solid #ececec;
  padding:0;
  -webkit-tap-highlight-color:transparent;
  outline:none;
  user-select:none;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.kz-drawer-trigger:hover{
  background:#fafafa;
  box-shadow:0 6px 22px rgba(0,0,0,.11);
}

.kz-drawer-trigger:active{
  transform:scale(.94);
}

.kz-drawer-trigger:focus,
.kz-drawer-trigger:focus-visible{
  outline:none;
}

/* Hamburger icon */
.kz-hamburger{
  width:20px;
  height:2px;
  background:#111;
  position:relative;
  border-radius:2px;
  display:block;
}

.kz-hamburger::before,
.kz-hamburger::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:#111;
  border-radius:2px;
}

.kz-hamburger::before{
  top:-6px;
}

.kz-hamburger::after{
  top:6px;
}

/* =========================
   BACKDROP
   ========================= */

.kz-drawer-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:
    opacity .28s ease,
    visibility .28s ease;
  z-index:9998;
}

.kz-drawer-wrap.is-open .kz-drawer-backdrop{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* =========================
   PANEL
   ========================= */

.kz-drawer-panel{
  position:fixed;
  top:0;
  right:0;
  width:320px;
  max-width:88vw;
  height:100vh;
  height:100dvh;
  background:#fff;
  z-index:9999;

  transform:translateX(100%);
  transition:transform .36s cubic-bezier(.22,.61,.36,1);
  will-change:transform;

  display:flex;
  flex-direction:column;
  box-shadow:-10px 0 40px rgba(0,0,0,.14);
  overflow:hidden;
}

.kz-drawer-wrap.is-open .kz-drawer-panel{
  transform:translateX(0);
}

/* =========================
   HEADER
   ========================= */

.kz-drawer-header{
  min-height:70px;
  height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px;
  border-bottom:1px solid #f1f1f1;
  flex-shrink:0;
  background:#fff;
}

.kz-drawer-header h3,
.kz-drawer-header .kz-drawer-title{
  margin:0;
  font-size:17px;
  font-weight:800;
  color:#111;
}

.kz-drawer-close{
  width:36px;
  height:36px;
  border:none;
  background:#f3f4f6;
  color:#111;
  border-radius:10px;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  transition:background .18s ease, transform .18s ease;
  -webkit-tap-highlight-color:transparent;
}

.kz-drawer-close:hover{
  background:#e9eaee;
}

.kz-drawer-close:active{
  transform:scale(.94);
}

.kz-drawer-close:focus,
.kz-drawer-close:focus-visible{
  outline:none;
}

/* =========================
   BODY
   ========================= */

.kz-drawer-body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:18px;
  background:#fff;

  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;

  /*
    از contain: strict استفاده نکن.
    strict شامل contain:size هم می‌شود و در بعضی ساختارهای flex
    ممکن است رفتار ارتفاع/اسکرول را خراب کند.
  */
  contain:layout paint;
}

/* Scrollbar - optional */
.kz-drawer-body::-webkit-scrollbar{
  width:5px;
}

.kz-drawer-body::-webkit-scrollbar-thumb{
  background:#ddd;
  border-radius:10px;
}

.kz-drawer-body::-webkit-scrollbar-track{
  background:transparent;
}

/* =========================
   MENU RESET
   ========================= */

.kz-drawer-menu,
.kz-drawer-menu ul,
.kz-drawer-menu li{
  list-style:none;
  margin:0;
  padding:0;
}

.kz-drawer-menu{
  direction:rtl;
  width:100%;
}

/* فاصله آیتم‌های سطح اول */
.kz-drawer-menu > li{
  margin-bottom:8px;
}

/* فاصله آیتم‌های زیرمنو */
.kz-drawer-menu .sub-menu li{
  margin-bottom:7px;
}

.kz-drawer-menu .sub-menu li:last-child{
  margin-bottom:0;
}

/* =========================
   LINKS
   ========================= */

.kz-drawer-menu a{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border-radius:14px;
  background:#f8f9fb;
  color:#111;
  text-decoration:none;
  font-weight:600;
  font-size:14px;
  line-height:1.6;
  text-align:right;

  display:flex;
  align-items:center;
  justify-content:flex-start;

  position:relative;
  overflow:hidden;

  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

.kz-drawer-menu a:hover{
  background:#eef2ff;
  color:#111;
}

.kz-drawer-menu a:active{
  transform:scale(.985);
}

.kz-drawer-menu a:focus,
.kz-drawer-menu a:focus-visible{
  outline:none;
}

/* =========================
   ASTRA / THEME ICON CLEANUP
   ========================= */

/* حذف آیکون‌ها و فلش‌های تزریقی قالب داخل کل Drawer */
.kz-drawer-menu .submenu-toggle,
.kz-drawer-menu .ast-submenu-expand,
.kz-drawer-menu .ast-menu-toggle,
.kz-drawer-menu .dropdown-menu-toggle,
.kz-drawer-menu .menu-link .icon,
.kz-drawer-menu i,
.kz-drawer-menu svg,
.kz-drawer-menu .fa,
.kz-drawer-menu [class*="arrow"],
.kz-drawer-menu [class*="chevron"],
.kz-drawer-menu [class*="caret"]{
  display:none !important;
}

/* پاکسازی pseudo های قالب برای زیرمنوها */
.kz-drawer-menu .sub-menu a::before,
.kz-drawer-menu .sub-menu a::after{
  content:none !important;
  display:none !important;
}


/* =========================
   MODERN ARROWS - FIXED
   ========================= */

.kz-drawer-menu > li.menu-item-has-children > a{
  padding-left:60px !important;
  position:relative;
}

/* باکس فلش */
.kz-drawer-menu > li.menu-item-has-children > a::before{
  content:"";
  position:absolute;
  left:12px;
  top:50%;
  width:32px;
  height:32px;
  border-radius:10px;
  background:#f3f4f6;
  border:1px solid #d1d5db; /* پررنگ‌تر شد */
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  transform:translateY(-50%);
  transition:
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
  z-index:1;
}

/* خود فلش */
.kz-drawer-menu > li.menu-item-has-children > a::after{
  content:"";
  position:absolute;
  left:20px;
  top:50%;
  width:16px;
  height:16px;
  background-color:#111827; /* همیشه تیره */
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.4' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E") no-repeat center;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.4' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E") no-repeat center;
  transform:translateY(-50%) rotate(0deg);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  z-index:2;
}

/* هاور */
.kz-drawer-menu > li.menu-item-has-children > a:hover::before{
  background:#e5e7eb;
  border-color:#9ca3af;
}

/* حالت باز */
.kz-drawer-menu > li.menu-item-has-children.is-open > a::before{
  background:#e0e7ff;   /* روشن ولی معلوم */
  border-color:#a5b4fc; /* مشخص‌تر */
}

.kz-drawer-menu > li.menu-item-has-children.is-open > a::after{
  background-color:#111827; /* سفید نشود، تیره بماند */
  transform:translateY(-50%) rotate(180deg);
}

/* =========================
   SUB MENU ANIMATION
   بدون scrollHeight
   بدون height:auto در JS
   ========================= */

.kz-drawer-menu .sub-menu{
  margin-top:0;
  padding:0;
  max-height:0;
  opacity:0;
  transform:translateY(-4px);
  overflow:hidden;
  visibility:hidden;

  transition:
    max-height .42s cubic-bezier(.22,.61,.36,1),
    opacity .22s ease,
    transform .28s cubic-bezier(.22,.61,.36,1),
    margin-top .28s ease,
    visibility .42s;
}

/* حالت باز */
.kz-drawer-menu li.menu-item-has-children.is-open > .sub-menu{
  max-height:var(--kz-submenu-height, 360px);
  opacity:1;
  transform:translateY(0);
  visibility:visible;
  margin-top:8px;
}

/* لینک‌های فرزند */
.kz-drawer-menu .sub-menu a{
  background:#fff;
  border:1px solid #f0f0f0;
  color:#222;
  font-weight:500;
  font-size:13.5px;
  min-height:44px;
  padding:10px 16px;
  border-radius:13px;
}

/* کمی تورفتگی برای فرزندها */
.kz-drawer-menu .sub-menu li a{
  padding-right:18px;
}

/* هاور فرزند */
.kz-drawer-menu .sub-menu a:hover{
  background:#fafafa;
  border-color:#e9e9e9;
}

/* زیرمنوی داخل زیرمنو اگر وجود داشت، فلش نداشته باشد */
.kz-drawer-menu .sub-menu li.menu-item-has-children > a{
  padding-left:14px;
}

.kz-drawer-menu .sub-menu li.menu-item-has-children > a::before,
.kz-drawer-menu .sub-menu li.menu-item-has-children > a::after{
  content:none !important;
  display:none !important;
}

/* =========================
   OPEN STATE POLISH
   ========================= */

.kz-drawer-menu > li.menu-item-has-children.is-open > a{
  background:#eef2ff;
}

.kz-drawer-menu > li.menu-item-has-children.is-open > a::before{
  background:#fff;
  border-color:#dbe3ff;
}

/* =========================
   MOBILE OPTIMIZATION
   ========================= */

@media (max-width:480px){
  .kz-drawer-panel{
    width:315px;
    max-width:88vw;
  }

  .kz-drawer-body{
    padding:16px;
  }

  .kz-drawer-trigger{
    width:40px;
    height:40px;
    margin-right: 7px;
    margin-left: -5px;
    background: #F2F7FF;
  }

  .kz-drawer-menu a{
    min-height:47px;
    font-size:14px;
  }
}

/* =========================
   REDUCED MOTION
   ========================= */

@media (prefers-reduced-motion:reduce){
  .kz-drawer-panel,
  .kz-drawer-backdrop,
  .kz-drawer-menu .sub-menu,
  .kz-drawer-menu a,
  .kz-drawer-menu > li.menu-item-has-children > a::after,
  .kz-drawer-trigger,
  .kz-drawer-close{
    transition:none !important;
  }
}


/* قفل کردن اسکرول صفحه اصلی بدون لرزش صفحه */
body.kz-drawer-locked {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
}