/* Global Shell tokens now live in shared/css/tokens.css (single source of truth
   for --gs-* variables sitewide). tokens.css MUST be linked before this file. */
.gs-header,.gs-header *,.gs-footer,.gs-footer *{box-sizing:border-box}
.gs-header,.gs-footer{font-family:var(--gs-font-fa,"IRANYekanX",sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased}
.gs-header a,.gs-footer a{color:inherit;text-decoration:none}
.gs-header button,.gs-footer button{font:inherit}
.gs-header img,.gs-footer img{display:block;max-width:100%}
.gs-shell{width:min(calc(100% - (2 * var(--gs-gutter))),var(--gs-shell-max));margin-inline:auto}
.gs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* HEADER */
.gs-header{height:var(--gs-header-h);background:var(--gs-header-bg);position:relative;z-index:500;border-top:1px solid #f1f1f1;border-bottom:1px solid #f3f3f3}
.gs-header__inner{height:100%;display:flex;align-items:center;gap:44px;direction:rtl}
.gs-brand{display:inline-flex;align-items:center;flex:0 0 auto;direction:ltr}
.gs-brand img{width:210px;height:auto}
.gs-nav{display:flex;align-items:center;gap:22px;min-width:0;margin-inline-start:auto;direction:rtl}
.gs-nav__link{display:inline-flex;align-items:center;gap:7px;min-height:48px;padding:10px 0;font-size:16.5px;line-height:1.35;font-weight:650;white-space:nowrap;color:#303030;position:relative}
.gs-nav__link:hover{color:var(--gs-brand)}
.gs-nav__link[aria-current="page"]{color:var(--gs-brand)}
.gs-nav__chevron{width:10px;height:10px;border-left:1.9px solid currentColor;border-bottom:1.9px solid currentColor;transform:rotate(-45deg) translateY(-1px);margin-inline-start:2px}
.gs-nav__divider{width:1px;height:22px;background:#e3e6ea;flex:0 0 auto}
.gs-nav__tool{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 13px;border:1.5px solid var(--gs-brand);border-radius:999px;font-size:13.5px;font-weight:700;white-space:nowrap;color:var(--gs-brand);background:#fff;transition:background-color .18s ease,color .18s ease}
.gs-nav__tool svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gs-nav__tool:hover{background:var(--gs-brand);color:#fff}
.gs-menu-button{display:none;align-items:center;justify-content:center;width:48px;height:48px;border:0;background:transparent;border-radius:10px;color:#242424;cursor:pointer}
.gs-menu-button svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.gs-menu-button:focus-visible,.gs-nav__link:focus-visible,.gs-footer a:focus-visible{outline:none;box-shadow:var(--gs-focus);border-radius:6px}
.gs-mobile-nav{display:none}

/* NAV DROPDOWNS (desktop) */
.gs-nav__item{position:relative}
.gs-panel{position:absolute;top:100%;inset-inline-start:-20px;padding-top:14px;display:none;z-index:60}
/* Shown state sets its own display value per variant (grid vs flex) so it always
   wins over the base display:none regardless of stylesheet order — a plain
   .gs-panel--simple{display:flex} base rule previously tied in specificity with
   .gs-panel{display:none} and won by source order, leaving that panel permanently
   visible. Keep any future variant's "shown" display declared only here. */
.gs-nav__item:hover .gs-panel,.gs-nav__item:focus-within .gs-panel{display:block}
.gs-nav__item:hover .gs-panel--simple,.gs-nav__item:focus-within .gs-panel--simple{display:flex}
.gs-panel__grid,.gs-panel--simple{background:#fff;border-radius:14px;box-shadow:0 18px 44px rgba(20,30,45,.14)}
.gs-panel__grid{display:grid;grid-template-columns:repeat(4,200px);gap:0;padding:24px 22px}
.gs-panel__col{padding-inline:20px 22px;border-inline-end:1px solid #f0f1f3}
.gs-panel__col:first-child{padding-inline-start:0}
.gs-panel__col:last-of-type{padding-inline-end:0;border-inline-end:0}
.gs-panel__col h3{margin:0 0 12px;font-size:12.5px;font-weight:750;color:#8a939c}
.gs-panel__col a{display:block;padding:7px 10px;margin-inline:-10px;border-radius:8px;font-size:14px;font-weight:600;color:#2b2f33;line-height:1.4;transition:.15s ease}
.gs-panel__col a:hover{color:var(--gs-brand);background:#f7f9fc}
.gs-panel--simple{flex-direction:column;padding:10px 4px;min-width:220px}
.gs-panel--simple a{padding:11px 20px;font-size:14.5px;font-weight:650;color:#2b2f33;white-space:nowrap}
.gs-panel--simple a:hover{color:var(--gs-brand);background:#f7f9fc}

/* DEMO BODY: not part of global shell */
.gs-demo,.gs-demo *{box-sizing:border-box}.gs-demo{min-height:520px;display:grid;place-items:center;background:#fff;padding:60px var(--gs-gutter)}
.gs-demo__card{width:min(100%,900px);border:1px dashed #d6d6d6;border-radius:16px;padding:48px;text-align:center;color:#6b6b6b;background:#fff}
.gs-demo__card strong{display:block;color:#303030;font-size:28px;margin-bottom:8px}
.gs-demo__card p{margin:0;line-height:2}

/* FOOTER */
.gs-footer{background:var(--gs-footer-bg);color:var(--gs-footer-text);padding:88px 0 48px;direction:rtl}
.gs-footer__top{display:grid;grid-template-columns:1.08fr .72fr .72fr .84fr;gap:72px;align-items:start}
.gs-footer__brand{padding-inline-end:20px;border-inline-end:1px solid var(--gs-footer-line);min-height:304px;display:flex;flex-direction:column;align-items:center;text-align:center}
.gs-footer__brand-logo{width:250px;max-width:100%;margin:0 0 32px;direction:ltr}
.gs-footer__brand-logo img{width:100%;height:auto}
.gs-socials{display:flex;gap:26px;align-items:center;justify-content:center;direction:ltr}
.gs-social{width:32px;height:32px;display:grid;place-items:center;color:#f3f3f3;border-radius:7px;cursor:pointer;transition:.18s ease}
.gs-social:hover{color:var(--brand-light)}
.gs-social svg{width:24px;height:24px;fill:currentColor;transition:transform .2s ease}
.gs-social:hover svg{transform:scale(1.15)}
.gs-social--bale svg{width:auto;height:20px}
.gs-enamad{margin-top:24px}
.gs-enamad img{width:84px;height:auto;border-radius:6px}
.gs-footer__column h2,.gs-footer__downloads h2{font-size:21px;line-height:1.5;margin:0 0 27px;font-weight:800;color:#fff}
.gs-footer__column nav{display:grid;gap:23px}
.gs-footer__column a{font-size:18px;color:#f0f0f0;line-height:1.5;width:max-content;max-width:100%}
.gs-footer__column a:hover{color:#fff}
.gs-footer__downloads{direction:rtl}
.gs-downloads{display:grid;gap:16px}
.gs-download{min-height:70px;border:1px solid #606060;border-radius:8px;padding:0 26px;display:flex;align-items:center;justify-content:flex-start;gap:15px;font-size:19px;color:#fff;background:transparent}
.gs-download:hover{border-color:#858585;background:#333}
.gs-download svg{width:25px;height:25px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gs-footer__rule{height:1px;background:var(--gs-footer-line);border:0;margin:42px 0 30px}
.gs-contact-title{text-align:right;font-size:22px;margin:0 0 24px;font-weight:800}
.gs-contact-row{display:grid;grid-template-columns:1.65fr .78fr .85fr;gap:44px;align-items:center}
.gs-contact-item{display:flex;align-items:center;gap:15px;color:#f3f3f3;font-size:16px;line-height:1.8;min-width:0}
.gs-contact-item svg{width:26px;height:26px;stroke:#858585;fill:none;stroke-width:1.6;flex:0 0 auto;stroke-linecap:round;stroke-linejoin:round}
.gs-contact-item--email{direction:ltr;justify-content:center}
.gs-contact-item--phone{direction:ltr;justify-content:flex-end;white-space:normal}
.gs-contact-item a:hover{color:#fff}
.gs-footer__note{margin-top:30px;color:#8f8f8f;font-size:13px;line-height:1.8}

@media (max-width: 1280px){
  :root{--gs-gutter:30px}
  .gs-header__inner{gap:26px}
  .gs-brand img{width:190px}
  .gs-nav{gap:14px}
  .gs-nav__link{font-size:15px}
  .gs-nav__tool{font-size:12.5px;padding:0 10px;gap:5px}
  .gs-nav__tool svg{width:14px;height:14px}
  .gs-footer__top{gap:44px}
}
@media (max-width: 1360px){
  :root{--gs-header-h:86px;--gs-gutter:24px}
  .gs-header__inner{justify-content:space-between}
  .gs-brand img{width:188px}
  .gs-nav{display:none}
  .gs-menu-button{display:inline-flex}
  .gs-mobile-nav{position:absolute;top:100%;inset-inline:0;background:#fff;border-top:1px solid #eee;border-bottom:1px solid #e8e8e8;padding:12px 24px 20px;box-shadow:0 16px 30px rgba(0,0,0,.08)}
  .gs-mobile-nav[data-open="true"]{display:grid;align-content:start;max-height:calc(100vh - var(--gs-header-h));overflow-y:auto}
  .gs-mobile-nav a{min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;border-bottom:1px solid #f0f0f0;font-size:16px;font-weight:650}
  .gs-mobile-nav a:last-child{border-bottom:0}
  .gs-mobile-nav__group{border-bottom:1px solid #f0f0f0}
  .gs-header .gs-mobile-nav__toggle{width:100%;min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 6px;border:0;background:none;font:inherit;font-size:16px;font-weight:650;color:inherit;cursor:pointer}
  .gs-mobile-nav__toggle span{font-size:15px;color:#9aa3ac;transition:transform .18s ease}
  .gs-mobile-nav__toggle[aria-expanded="true"] span{transform:rotate(90deg)}
  .gs-mobile-nav__submenu{display:none;grid-template-columns:1fr 1fr;gap:2px 14px;padding:2px 6px 14px}
  .gs-mobile-nav__submenu[data-open="true"]{display:grid}
  .gs-mobile-nav__submenu a{min-height:40px;border-bottom:0;padding:0 8px;font-size:14.5px;font-weight:550;color:#4a5158;justify-content:flex-start}
  .gs-mobile-nav__submenu a:last-child{grid-column:1/-1;margin-top:6px;padding-top:10px;border-top:1px solid #f0f0f0;color:var(--gs-brand)}
  .gs-mobile-nav__submenu--products{grid-template-columns:1fr}
  .gs-mobile-nav__cat{grid-column:1/-1;padding:10px 8px 2px;font-size:12px;font-weight:800;color:#8a93a0;letter-spacing:.01em}
  .gs-mobile-nav__tools{display:flex;flex-direction:column;align-items:stretch;width:fit-content;margin-inline-end:auto;gap:8px;padding:14px 6px 2px}
  .gs-mobile-nav__tool{flex:0 0 auto;min-height:36px;border:1.5px solid var(--gs-brand)!important;border-radius:10px;background:#fff;color:var(--gs-brand);justify-content:center!important;gap:7px;padding-inline:14px;font-size:14px;font-weight:700}
  .gs-mobile-nav__tool:hover{background:var(--gs-brand);color:#fff}
  .gs-mobile-nav__tool svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .gs-mobile-nav__cat:first-child{padding-top:2px}
  .gs-mobile-nav__submenu--products a{min-height:38px;font-size:14px}
  .gs-footer{padding-top:64px}
  .gs-footer__top{grid-template-columns:1.1fr 1fr 1fr;gap:44px}
  .gs-footer__brand{grid-column:1/-1;min-height:0;border-inline-end:0;border-bottom:1px solid var(--gs-footer-line);padding:0 0 34px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
  .gs-footer__brand-logo{width:170px;margin:0 0 24px}
  .gs-contact-row{grid-template-columns:1fr;gap:17px}
  .gs-contact-item,.gs-contact-item--email,.gs-contact-item--phone{justify-content:flex-start;direction:rtl}
}
@media (max-width: 720px){
  :root{--gs-gutter:20px;--gs-header-h:76px}
  .gs-brand img{width:164px}
  .gs-footer{padding:48px 0 34px}
  .gs-footer__top{grid-template-columns:1fr 1fr;gap:38px 28px}
  .gs-footer__brand-logo{width:150px;margin-bottom:22px}
  .gs-socials{gap:20px}
  .gs-footer__downloads{grid-column:1/-1}
  .gs-downloads{grid-template-columns:1fr}
  .gs-footer__column h2,.gs-footer__downloads h2{font-size:18px;margin-bottom:18px}
  .gs-footer__column nav{gap:15px}
  .gs-footer__column a{font-size:15px}
  .gs-download{min-height:58px;font-size:16px;padding-inline:20px}
  .gs-footer__rule{margin:34px 0 26px}
  .gs-contact-title{font-size:18px;margin-bottom:18px}
  .gs-contact-item{font-size:14px;align-items:flex-start}
  .gs-demo{padding-inline:20px;min-height:360px}
  .gs-demo__card{padding:30px 20px}
  .gs-demo__card strong{font-size:22px}
}
@media (max-width: 420px){
  .gs-footer__top{grid-template-columns:1fr}
  .gs-footer__downloads{grid-column:auto}
  .gs-brand img{width:150px}
}
@media (prefers-reduced-motion: reduce){.gs-header *,.gs-footer *{scroll-behavior:auto!important;transition:none!important}}

.gs-is-pending{cursor:default!important;opacity:.82}.gs-is-pending:hover{background:inherit!important;color:inherit!important;border-color:inherit!important}

.gs-contact-item,.gs-contact-item a,.gs-contact-item span{min-width:0;overflow-wrap:anywhere;word-break:normal}

/* Skip link: visible only while it has keyboard focus */
.gs-skip{position:fixed;inset-inline-start:12px;top:-80px;z-index:1000;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:10px;background:#0e1b2b;color:#fff;font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 8px 20px rgba(0,0,0,.3);transition:top .15s ease}
.gs-skip:focus{top:12px;outline:2px solid #8fb8ff;outline-offset:2px}

/* Images carry width/height attributes for layout stability; the zero-specificity rule lets any class set its own height */
:where(img[width][height]){height:auto}

/* Back-to-top button (desktop only): fixed on the right edge, hidden until the page is scrolled. */
.gs-top{display:none}
@media(min-width:1024px){
  .gs-top{position:fixed;right:28px;bottom:28px;z-index:400;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:var(--gs-brand,#206bee);color:#fff;cursor:pointer;box-shadow:0 8px 22px rgba(8,58,119,.28);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s,background-color .18s ease,box-shadow .18s ease}
  .gs-top.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .gs-top:hover{background:var(--gs-brand-dark,#1457c8);box-shadow:0 12px 28px rgba(8,58,119,.36)}
  .gs-top:focus-visible{outline:3px solid #8fb8ff;outline-offset:3px}
  .gs-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
  @media(prefers-reduced-motion:no-preference){
    /* two small nudges when the button first appears, then a lift on hover */
    .gs-top.is-visible svg{animation:gs-top-nudge .9s ease-in-out .3s 2}
    .gs-top:hover svg{animation:gs-top-lift .45s ease-in-out 2 alternate}
  }
}
@keyframes gs-top-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes gs-top-lift{from{transform:translateY(1px)}to{transform:translateY(-3px)}}
