/* =========================================================
   کاریزما سیستم — Stylesheet
   Mobile-first, RTL
   ========================================================= */

   :root{
    /* Brand */
    --c-primary: #E8402C;
    --c-primary-dark: #C82F1E;
    --c-primary-light: #FDECEA;
  
    --c-navy: #101B3D;
    --c-navy-2: #182B57;
  
    /* Text */
    --c-text: #1A1F36;
    --c-text-muted: #7A8194;
    --c-text-soft: #9CA3AF;
  
    /* Surfaces */
    --c-bg: #F6F7FB;
    --c-white: #FFFFFF;
    --c-border: #EEF0F5;
  
    /* Tints for icon chips */
    --tint-red-bg: #FDECEA;   --tint-red-fg: #E8402C;
    --tint-blue-bg: #E9F1FE;  --tint-blue-fg: #3B82F6;
    --tint-green-bg: #E7F8EF; --tint-green-fg: #16A34A;
    --tint-purple-bg:#F1EBFC; --tint-purple-fg:#8B5CF6;
    --tint-orange-bg:#FDF3E6; --tint-orange-fg:#F0972B;
    --tint-pink-bg:  #FDEAF0; --tint-pink-fg:  #EC4899;
    --tint-teal-bg:  #E6F7F6; --tint-teal-fg:  #14B8A6;
  
    --radius-lg: 18px;
    --radius-md: 14px;
    --radius-sm: 10px;
    --radius-pill: 999px;
  
    --shadow-card: 0 4px 18px rgba(16, 27, 61, 0.06);
    --shadow-pop: 0 10px 30px rgba(232, 64, 44, 0.25);
  
    --header-h: 56px;
    --bottomnav-h: 66px;
  }
  
  html{ scroll-behavior: smooth; }
  
  body{
    font-family: "Vazirmatn", "Segoe UI", Tahoma, sans-serif;
    background: var(--c-bg);
    color: var(--c-text);
    padding-bottom: calc(var(--bottomnav-h) + 10px);
    overflow-x: hidden;
  }
  
  a{ text-decoration: none; }
  a:focus-visible, button:focus-visible, .btn:focus-visible{
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
  }
  
  /* utility */
  .text-primary-b{ color: var(--c-primary) !important; }
  .section{ padding: 28px 0; }
  .section-title{
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 2px;
  }
  .section-subtitle{
    font-size: .82rem;
    color: var(--c-text-muted);
    margin-bottom: 16px;
  }
  .section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
  }
  .link-more{
    font-size: .78rem;
    color: var(--c-text-muted);
    white-space: nowrap;
    display:flex;
    align-items:center;
    gap:2px;
  }
  
  /* =========================================================
     HEADER
     ========================================================= */
  .site-header{
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--c-white);
    height: var(--header-h);
    display:flex;
    align-items:center;
    border-bottom: 1px solid var(--c-border);
  }
  .site-header .brand{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight: 700;
    font-size: .95rem;
    color: var(--c-text);
  }
  .site-header .brand .brand-logo{
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--c-navy), var(--c-navy-2));
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size: .95rem;
    flex-shrink: 0;
    overflow: hidden;
  }
  .site-header .brand .brand-logo img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .site-header .brand .brand-logo-full{
    height: 30px;
    width: auto;
    display: block;
  }
  .site-header .brand .bi-chevron-down{ font-size: .7rem; color: var(--c-text-soft); }
  
  .header-actions{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .icon-btn{
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--c-border);
    background: var(--c-white);
    display:flex;
    align-items:center;
    justify-content:center;
    color: var(--c-text);
    position: relative;
  }
  .icon-btn .dot{
    position:absolute;
    top:6px; left:8px;
    width:7px; height:7px;
    border-radius:50%;
    background: var(--c-primary);
    border:1.5px solid #fff;
  }
  .btn-login{
    background: var(--c-primary);
    color:#fff;
    font-size:.8rem;
    font-weight:600;
    padding: 7px 18px;
    border-radius: var(--radius-pill);
    border:none;
    white-space:nowrap;
  }
  .btn-login:hover{ background: var(--c-primary-dark); color:#fff; }
  
  /* Search */
  .search-wrap{ padding: 14px 0 6px; }
  .search-box{
    display:flex;
    align-items:center;
    gap:10px;
    background: var(--c-white);
    border:1px solid var(--c-border);
    border-radius: var(--radius-pill);
    padding: 9px 12px;
    box-shadow: var(--shadow-card);
  }
  .search-box:hover{ border-color: var(--c-primary); }
  .search-box i.bi-search{
    font-size: 1rem;
    color: var(--c-text-soft);
    flex-shrink: 0;
  }
  .search-box .search-placeholder{
    flex: 1;
    font-size: .8rem;
    color: var(--c-text-soft);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .search-box .search-placeholder strong{
    color: var(--c-primary);
    font-weight: 700;
  }
  .search-box .search-placeholder .search-brand-logo{
    height: 15px;
    width: auto;
    vertical-align: middle;
    margin-top: -2px;
  }
  .search-box .search-badge{
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--c-border);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .search-box .search-badge img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
  }
  
  /* =========================================================
     QUICK ICONS — نوار متحرک بی‌سر-و-ته + قابل کشیدن با دست
     ========================================================= */
  .quick-icons-wrap{
    overflow: hidden;
    padding: 14px 0 4px;
    cursor: grab;
    -webkit-mask-image: linear-gradient(to left, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(to left, transparent, #000 6%, #000 94%, transparent);
  }
  .quick-icons-wrap.is-dragging{
    cursor: grabbing;
  }
  
  .quick-icons-track{
    display: flex;
    width: max-content;
    gap: 8px;
    will-change: transform;
    touch-action: pan-y;
  }
  
  .quick-icon-item{
    flex: 0 0 auto;
    width: 78px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    text-align:center;
    color: var(--c-text);
    user-select: none;
    -webkit-user-drag: none;
  }
  .quick-icon-item .ico{
    width:52px;
    height:52px;
    border-radius: 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.25rem;
    pointer-events: none;
  }
  .quick-icon-item span:last-child{
    font-size:.72rem;
    font-weight:600;
    line-height:1.3;
    pointer-events: none;
  }
  
  @media (min-width: 992px){
    .quick-icons-wrap{ max-width: 640px; }
  }
  
  /* =========================================================
     HERO BANNER SCROLL (بدون Swiper — اسکرولی + دکمه‌های ناوبری + لوپ بی‌نهایت)
     ========================================================= */
  .hero-slider-wrap{ margin-top: 18px; }
  
  .banner-carousel{
    position: relative;
  }
  
  .banner-scroll{
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    gap: 4px;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .banner-scroll::-webkit-scrollbar{ display:none; }
  
  .banner-item{
    flex: 0 0 94%;
    scroll-snap-align: center;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 1280 / 700;
    background: var(--c-bg);
    display: block;
  }
  .banner-item img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  
  @media (min-width: 768px){
    .banner-item{ flex-basis: 100%; }
  }
  @media (min-width: 992px){
    .banner-item{ flex-basis: 100%; }
  }
  
  /* دکمه‌های ناوبری بنر */
  .hero-nav-btn{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid var(--c-border);
    background: var(--c-white);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-text);
    z-index: 5;
    box-shadow: var(--shadow-card);
  }
  .banner-nav-prev{ right: 8px; }
  .banner-nav-next{ left: 8px; }
  
  /* مخفی کردن دکمه‌های ناوبری بنر در موبایل */
  @media (max-width: 767.98px){
    .hero-nav-btn{
      display: none;
    }
  }
  
  /* نقاط (dots) پایین بنر */
  .banner-dots{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-top: 10px;
  }
  .banner-dot{
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--c-border);
    transition: width .25s ease, background .25s ease;
    cursor: pointer;
  }
  .banner-dot.active{
    background: var(--c-primary);
    width: 16px;
    border-radius: 4px;
  }
  
  /* =========================================================
     SERVICE TABS (pill filter)
     ========================================================= */
  .tab-pills{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:none;
  }
  .tab-pills::-webkit-scrollbar{ display:none; }
  .tab-pill{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:6px;
    padding:9px 16px;
    border-radius: var(--radius-pill);
    background: var(--c-white);
    border:1px solid var(--c-border);
    font-size:.78rem;
    font-weight:600;
    color: var(--c-text-muted);
  }
  .tab-pill i{ font-size:.9rem; }
  .tab-pill.active{
    background: var(--c-primary);
    border-color: var(--c-primary);
    color:#fff;
  }
  
  /* =========================================================
     SERVICE CARDS (popular services grid)
     ========================================================= */
  .service-grid{
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    gap:12px;
  }
  .service-card{
    background: var(--c-white);
    border-radius: var(--radius-md);
    padding:14px;
    box-shadow: var(--shadow-card);
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .service-card .ico{
    width:42px;
    height:42px;
    border-radius: 12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.05rem;
    margin-bottom:2px;
  }
  .service-card h3{
    font-size:.85rem;
    font-weight:700;
    margin:0;
  }
  .service-card p{
    font-size:.7rem;
    color: var(--c-text-muted);
    margin:0;
    line-height:1.5;
    min-height: 30px;
  }
  .service-card .btn-enter{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    gap:4px;
    align-self:flex-start;
    background: var(--c-primary-light);
    color: var(--c-primary);
    font-size:.72rem;
    font-weight:700;
    padding:6px 14px;
    border-radius: var(--radius-pill);
  }
  .service-card .btn-enter i{ font-size:.85rem; }
  
  /* =========================================================
     QUICK REGISTER LIST
     ========================================================= */
  .reg-list{ display:flex; flex-direction:column; gap:10px; }
  .reg-item{
    background: var(--c-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    padding:14px;
    display:flex;
    align-items:center;
    gap:12px;
  }
  .reg-item .ico{
    width:46px;
    height:46px;
    border-radius: 13px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.15rem;
    flex-shrink:0;
  }
  .reg-item .body{ flex:1; min-width:0; }
  .reg-item h3{ font-size:.85rem; font-weight:700; margin:0 0 2px; }
  .reg-item p{ font-size:.72rem; color:var(--c-text-muted); margin:0; }
  .reg-item .bi-chevron-left{ color: var(--c-text-soft); font-size:.85rem; }
  
  /* =========================================================
     CTA BANNER
     ========================================================= */
  .cta-banner{
    position:relative;
    background: linear-gradient(150deg, var(--c-navy) 10%, var(--c-navy-2) 100%);
    border-radius: var(--radius-lg);
    overflow:hidden;
    padding: 24px 20px;
    color:#fff;
  }
  .cta-banner .badge-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background: rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.15);
    font-size:.68rem;
    padding:5px 12px;
    border-radius: var(--radius-pill);
    margin-bottom:12px;
  }
  .cta-banner .badge-pill i{ color: var(--c-primary); }
  .cta-banner h2{
    font-size:1.2rem;
    font-weight:800;
    margin-bottom:8px;
    max-width: 78%;
  }
  .cta-banner p{
    font-size:.75rem;
    color: rgba(255,255,255,.7);
    line-height:1.7;
    max-width: 85%;
    margin-bottom:16px;
  }
  .cta-banner .btn-hero{
    background: var(--c-primary);
    color:#fff;
    font-size:.78rem;
    font-weight:700;
    padding:9px 18px;
    border-radius: var(--radius-pill);
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .cta-banner .cta-illustration{
    margin-top:18px;
    text-align:center;
    opacity:.95;
  }
  .cta-banner .cta-illustration svg{ width: 78%; max-width:220px; height:auto; }
  
  /* =========================================================
     LOGIN TYPE GRID
     ========================================================= */
  .login-type-grid{
    display:grid;
    grid-template-columns: repeat(2,1fr);
    gap:12px;
  }
  .login-type-card{
    background: var(--c-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    padding:20px 12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    text-align:center;
  }
  .login-type-card .ico{
    width:52px;
    height:52px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.4rem;
  }
  .login-type-card span{ font-size:.85rem; font-weight:700; }
  
  /* =========================================================
     WHY US LIST
     ========================================================= */
  .why-list{ display:flex; flex-direction:column; gap:10px; }
  .why-item{
    background: var(--c-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    padding:14px;
    display:flex;
    align-items:center;
    gap:12px;
  }
  .why-item .ico{
    width:42px;
    height:42px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.1rem;
    flex-shrink:0;
  }
  .why-item h3{ font-size:.83rem; font-weight:700; margin:0 0 2px; }
  .why-item p{ font-size:.7rem; color:var(--c-text-muted); margin:0; }
  
  /* =========================================================
     STATS
     ========================================================= */
  .stats-grid{
    display:grid;
    grid-template-columns: repeat(2,1fr);
    gap:12px;
  }
  .stat-card{
    background: var(--c-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    padding:16px 10px;
    text-align:center;
  }
  .stat-card .num{
    font-size:1.15rem;
    font-weight:800;
    color: var(--c-primary);
  }
  .stat-card .lbl{
    font-size:.72rem;
    color: var(--c-text-muted);
    margin-top:2px;
  }
  
  /* =========================================================
     TOOLS SCROLLER
     ========================================================= */
  .tools-scroller{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding-bottom:6px;
    scrollbar-width:none;
  }
  .tools-scroller::-webkit-scrollbar{ display:none; }
  .tool-chip{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:8px;
    background: var(--c-white);
    border:1px solid var(--c-border);
    border-radius: var(--radius-pill);
    padding:9px 14px;
    font-size:.75rem;
    font-weight:600;
    white-space:nowrap;
  }
  .tool-chip .ico{
    width:26px;height:26px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:.8rem;
  }
  
  /* =========================================================
     FOOTER
     ========================================================= */
  .site-footer{
    background: var(--c-navy);
    color: rgba(255,255,255,.85);
    padding: 30px 0 0;
    margin-top: 12px;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
  }
  .site-footer .brand{
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-weight:700;
    margin-bottom:8px;
  }
  .site-footer .brand .brand-logo{
    width:38px;height:38px;border-radius:50%;
    background: rgba(255,255,255,.08);
    display:flex;align-items:center;justify-content:center;
    color: var(--c-primary);
  }
  .site-footer p.desc{
    font-size:.75rem;
    color: rgba(255,255,255,.55);
    line-height:1.7;
    margin-bottom:16px;
  }
  .site-footer .social-row{ display:flex; gap:10px; margin-bottom:26px; }
  .site-footer .social-row a{
    width:34px;height:34px;border-radius:50%;
    background: rgba(255,255,255,.08);
    display:flex;align-items:center;justify-content:center;
    color:#fff;
    font-size:.85rem;
  }
  .site-footer h4{
    font-size:.85rem;
    font-weight:700;
    color:#fff;
    margin-bottom:14px;
  }
  .site-footer ul{ list-style:none; padding:0; margin:0 0 26px; }
  .site-footer ul li{ margin-bottom:12px; }
  .site-footer ul li a, .site-footer ul li span{
    font-size:.78rem;
    color: rgba(255,255,255,.6);
  }
  .site-footer ul li i{ margin-left:8px; color: var(--c-primary); }
  .site-footer .addr-block{
    font-size:.78rem;
    color: rgba(255,255,255,.6);
    line-height:1.8;
    padding-bottom:18px;
  }
  .site-footer .copy-bar{
    border-top: 1px solid rgba(255,255,255,.08);
    text-align:center;
    font-size:.7rem;
    color: rgba(255,255,255,.4);
    padding: 14px 0 calc(var(--bottomnav-h) + 14px);
  }
  
  /* =========================================================
     MOBILE BOTTOM NAV
     ========================================================= */
  .bottom-nav{
    position: fixed;
    bottom:0; right:0; left:0;
    height: var(--bottomnav-h);
    background: var(--c-white);
    border-top: 1px solid var(--c-border);
    box-shadow: 0 -4px 20px rgba(16,27,61,.06);
    z-index: 1040;
    display:flex;
    align-items:center;
  }
  .bottom-nav .nav-inner{
    width:100%;
    display:grid;
    grid-template-columns: repeat(5, 1fr);
    align-items:center;
  }
  .bottom-nav .bn-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    color: var(--c-text-soft);
    font-size:.63rem;
    font-weight:600;
  }
  .bottom-nav .bn-item i{ font-size:1.15rem; }
  .bottom-nav .bn-item.active{ color: var(--c-primary); }
  .bottom-nav .bn-item.bn-center{
    position:relative;
    color: var(--c-primary);
  }
  .bottom-nav .bn-center .bn-center-circle{
    width:50px;
    height:50px;
    border-radius:50%;
    background: var(--c-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:1.3rem;
    margin-top:-26px;
    box-shadow: var(--shadow-pop);
    border: 4px solid var(--c-bg);
  }
  
  /* Offcanvas mobile menu */
  .offcanvas-mobile-menu{ width: 82vw; max-width: 340px; }
  .offcanvas-mobile-menu .offcanvas-header{
    border-bottom:1px solid var(--c-border);
  }
  .mm-profile{
    display:flex;
    align-items:center;
    gap:10px;
    background: var(--c-bg);
    border-radius: var(--radius-md);
    padding:12px;
    margin-bottom:18px;
  }
  .mm-profile .ico{
    width:42px;height:42px;border-radius:50%;
    background: var(--c-primary-light);
    color: var(--c-primary);
    display:flex;align-items:center;justify-content:center;
    font-size:1.1rem;
  }
  .mm-profile .lbl{ font-size:.7rem; color:var(--c-text-muted); }
  .mm-profile .val{ font-size:.85rem; font-weight:700; }
  .mm-nav{ list-style:none; padding:0; margin:0; }
  .mm-nav li + li{ margin-top:2px; }
  .mm-nav a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 8px;
    border-radius: var(--radius-sm);
    color: var(--c-text);
    font-size:.85rem;
    font-weight:600;
  }
  .mm-nav a i{
    width:34px;height:34px;
    border-radius:10px;
    background: var(--c-bg);
    display:flex;align-items:center;justify-content:center;
    font-size:1rem;
    color: var(--c-text-muted);
  }
  .mm-nav a:hover{ background: var(--c-bg); }
  .mm-nav a.text-danger i{ color: var(--c-primary); background: var(--c-primary-light); }
  
  /* =========================================================
     RESPONSIVE — tablet / desktop refinements
     ========================================================= */
  @media (min-width: 768px){
    .service-grid{ grid-template-columns: repeat(4,1fr); }
    .login-type-grid{ grid-template-columns: repeat(4,1fr); }
    .stats-grid{ grid-template-columns: repeat(4,1fr); }
    .reg-list{ flex-direction:row; }
    .reg-item{ flex:1; flex-direction:column; align-items:flex-start; text-align:right; }
    .cta-banner{ display:flex; align-items:center; justify-content:space-between; padding:40px; }
    .cta-banner .cta-illustration{ margin-top:0; }
  }
  
  @media (min-width: 992px){
    .bottom-nav{ display:none; }
    body{ padding-bottom:0; }
    .site-footer .copy-bar{ padding-bottom:14px; }
    .why-list, .why-list .why-item{ flex: 1 1 auto; }
    .why-list{ flex-direction:row; flex-wrap:wrap; }
    .why-item{ flex:1 1 calc(50% - 5px); }
  }
  
  @media (min-width: 576px) and (max-width: 991.98px){
    .service-grid{ grid-template-columns: repeat(3,1fr); }
  }


/* بنر موبایل و دسکتاپ */
  @media (min-width: 768px){
    .banner-item{ aspect-ratio: 1440 / 300; } /* نسبت دلخواه برای دسکتاپ */
  }

  /* =========================================================
   ✅ لوگو در موبایل کوچک‌تر
   ========================================================= */

@media (max-width: 767.98px) {
  .site-header .brand .brand-logo-full {
      height: 22px;      /* به جای 30px */
      width: auto;
  }
}

/* حالت خیلی کوچک (موبایل‌های کوچک) */
@media (max-width: 380px) {
  .site-header .brand .brand-logo-full {
      height: 20px;
  }
}