@font-face {
    font-family: IRANSansWeb;
    src: url("../fonts/IRANSansWeb(FaNum).woff2") format("woff2");
    font-weight: 400; font-style: normal; font-display: swap;
}
* { box-sizing: border-box; margin: 0; padding: 0; font-family: IRANSansWeb, sans-serif; }
body { background-color: #f0f2f5; color: #333; line-height: 1.6; overflow-x: hidden; direction: rtl; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }

.navbar-custom { display: flex; align-items: center; justify-content: space-between; padding: 10px 4%; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.04); position: fixed; top: 0; width: 100%; z-index: 1000; height: 65px; }
.nav-right-side { display: flex; align-items: center; gap: 8px; }
.nav-brand img { height: 38px; width: auto; display: block; }
.nav-menu-wrapper { display: flex; align-items: center; }
.nav-links { display: flex; list-style: none; gap: 20px; }
.nav-item-link { font-size: 14px; font-weight: 500; display: flex; align-items: center; gap: 5px; padding: 6px 10px; border-radius: 8px; transition: background 0.2s; white-space: nowrap; }
.nav-item-link:hover { background: #f5f5f5; }

.nav-actions { display: flex; align-items: center; gap: 8px; }
.action-btn { 
    display: flex; 
    align-items: center; 
    gap: 6px; 
    font-size: 13px; 
    font-weight: normal; 
    background: #f0f2f5; 
    padding: 8px 14px; 
    border-radius: 50px; 
    cursor: pointer; 
    transition: all 0.2s; 
    white-space: nowrap; 
    text-decoration: none !important; 
    color: #333; 
    border: none; 
    outline: none; 
    font-family: inherit; 
    line-height: inherit; 
    -webkit-appearance: none; 
}
.action-btn:hover { background: #e4e6eb; color: #333; }
.action-btn.ticket { background: #ffd600; color: #222; font-weight: bold; }
.action-btn.ticket:hover { background: #ffc400; color: #222; }

.hamburger-btn { display: flex; background: none; border: none; cursor: pointer; padding: 5px; align-items: center; justify-content: center; }
.hamburger-btn svg { stroke: #333; }

.fav_alert_new, .mis_fav_alert_new { display: none; position: fixed; top: 80px; left: 20px; background: #2e7d32; color: #fff; padding: 12px 24px; border-radius: 8px; z-index: 2000; align-items: center; box-shadow: 0 4px 12px rgba(0,0,0,0.15); animation: slideIn 0.25s ease; font-size: 14px; }
.mis_fav_alert_new { background: #c62828; }
@keyframes slideIn { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* منوی کشویی جانبی */
.side-menu { position: fixed; top: 0; right: -300px; width: 285px; height: 100vh; background: #fff; box-shadow: -2px 0 15px rgba(0,0,0,0.15); z-index: 3000; transition: right 0.3s ease; display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.side-menu.active { right: 0; }
.sidebar-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 2999; visibility: hidden; opacity: 0; transition: all 0.3s ease; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sidebar-overlay.active { visibility: visible; opacity: 1; }

.side-menu-header { display: flex; justify-content: space-between; align-items: center; padding: 15px 18px; border-bottom: 1px solid #f0f2f5; }
.side-menu-header img { height: 35px; width: auto; }
.close-side-btn { background: none; border: none; font-size: 28px; cursor: pointer; color: #555; line-height: 1; }

.side-home-link { padding: 12px 18px; } /* پدینگ برای تراز بهتر با خط جداکننده تنظیم شد */
.side-home-link a { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: bold; color: #333; }

/* ساختار ۳ ستونه فشرده برای دسته‌بندی‌ها */
.side-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    padding: 10px 15px;
}

.side-cat-card {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 8px 3px;
    text-align: center;
    transition: all 0.15s ease-in-out;
    text-decoration: none !important;
    min-height: 42px;
}

.side-cat-card span {
    font-size: 11.5px;
    font-weight: bold;
    line-height: 1.2;
    word-break: break-word;
}

.side-cat-card:hover, .side-cat-card:active {
    background-color: #f0f4f9;
    border-color: #ced4da;
    transform: translateY(-1px);
}

.side-menu-links { list-style: none; padding: 10px 18px 20px 18px; display: flex; flex-direction: column; gap: 14px; margin: 0; }
.side-menu-links li a { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 500; color: #444; transition: color 0.2s; }
.side-menu-links li a:hover { color: #00bef2; }
.side-menu-divider { border: none; border-top: 1px solid #eee; margin: 5px 0; }

@media (max-width: 992px) {
    .nav-menu-wrapper { display: none; }
    .action-btn.icon-only span { display: none; }
    .action-btn.ticket span { display: inline; }
    .navbar-custom { padding-left: 10px !important; } 
    .action-btn.icon-only svg { width: 22px; height: 22px; } 
    .action-btn.icon-only { padding: 6px; } 
    .nav-actions { gap: 4px; }
    .nav-brand { margin-top: -3px; margin-right: -4px; }
}