@font-face{font-family:"Vazirmatn";src:url("/fonts/Vazirmatn[wght].woff2") format("woff2");font-weight:100 900;font-display:swap}
/* Layout: RTL industrial spec-sheet. Panel-grey ground (pistachio ground, deep green ink and actions. */
:root{
  --bg:#eef5e2; --surface:#fbfdf6; --sunk:#d9eabf; --ink:#12301f; --muted:#4a6351;
  --line:#bcd3a4; --primary:#1b6b36; --on-primary:#ffffff; --signal:#93c572; --on-signal:#12301f; --alert:#c62828; --on-alert:#ffffff;
  --font: "Vazirmatn", Tahoma, "Segoe UI", sans-serif;
  --mono: ui-monospace, "SF Mono", Consolas, monospace;
  --wrap: 72rem;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0d1a12; --surface:#14261a; --sunk:#09130d; --ink:#e4f0dd; --muted:#9db3a0;
  --line:#274031; --primary:#8fd18a; --on-primary:#06200e; --signal:#93c572; --on-signal:#12301f; --alert:#ff7a6b; --on-alert:#2a0500; color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0d1a12; --surface:#14261a; --sunk:#09130d; --ink:#e4f0dd; --muted:#9db3a0;
  --line:#274031; --primary:#8fd18a; --on-primary:#06200e; --signal:#93c572; --on-signal:#12301f; --alert:#ff7a6b; --on-alert:#2a0500; color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.9;direction:rtl;text-align:right}
a{color:var(--primary)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
h1,h2,h3{line-height:1.35;text-wrap:balance;margin:0}
h1{font-size:clamp(1.9rem,4.6vw,3.1rem);font-weight:900}
h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:900}
h3{font-size:1.05rem;font-weight:700}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:16px}
.ltr{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}

.topbar{background:var(--ink);color:var(--bg);font-size:.85rem}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;justify-content:space-between;padding-block:.4rem}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.site-header .wrap{max-width:84rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-block:.6rem}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:900;font-size:1.15rem;color:var(--ink);text-decoration:none}
.brand .logo{height:3.25rem;width:auto;flex:none;background:#fff;border-radius:4px;padding:2px}
.brand-t{display:flex;flex-direction:column;line-height:1.35}
.member{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;color:var(--primary);white-space:nowrap}
.member svg{width:1rem;height:1rem;flex:none;fill:var(--primary)}
.member .ck{fill:none;stroke:var(--on-primary);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.nav{display:flex;gap:.25rem .4rem;flex-wrap:wrap;margin-inline-start:auto;list-style:none;padding:0;margin-block:0;gap:.25rem .8rem;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.84rem}
.nav a{display:inline-flex;align-items:center;gap:.35rem}
.ni{width:1rem;height:1rem;flex:none;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav a:hover{color:var(--primary)}
.sos{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-weight:700;font-size:.88rem;padding:.35rem .8rem;white-space:nowrap;border:0;border-radius:99px;background:var(--alert);color:var(--on-alert);cursor:pointer}
.sos:hover{filter:brightness(1.1)}
.msg{display:flex;gap:.35rem;align-items:center}
.chat{width:2.1rem;height:2.1rem;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;color:#fff;font:inherit;font-size:.72rem;font-weight:900;text-decoration:none;flex:none;padding:0}
.nav a.chat{color:#fff}
.chat:hover{filter:brightness(1.1)}
.chat.wa{background:#1faa53}.chat.wa svg{width:1.3rem;height:1.3rem}
.chat.bale{background:#12897a}
.sos svg,.sos-h svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
dialog#sos,dialog#bale{border:0;border-top:6px solid var(--alert);border-radius:8px;padding:1.5rem;width:26rem;max-width:calc(100vw - 32px);background:var(--surface);color:var(--ink)}
dialog#sos::backdrop,dialog#bale::backdrop{background:rgb(0 0 0 / .55)}
.sos-h{display:flex;align-items:center;gap:.5rem;color:var(--alert);font-size:1.3rem;margin-bottom:.75rem}
.sos-h svg{width:1.7rem;height:1.7rem}
.sos-num{font-size:1.8rem;font-weight:900;text-align:center;margin-block:.9rem;letter-spacing:.03em}
.sos-num a{color:var(--ink);text-decoration:none}
.sos-fee{background:var(--sunk);border-inline-start:4px solid var(--alert);padding:.5rem .75rem;font-size:.9rem;margin-bottom:1rem}
dialog#bale{border-top-color:#12897a}
.bale-h{color:var(--ink)}
.btn.red{background:var(--alert);color:var(--on-alert)}
.has-sub{position:relative}
.sub{display:none;position:absolute;top:100%;inset-inline-start:-.5rem;min-width:15.5rem;margin:0;padding:.4rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px rgb(0 0 0 / .12);z-index:6}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;padding:.4rem .6rem;border-radius:4px;font-weight:500}
.sub a:hover{background:var(--sunk)}
@media (max-width:860px){.has-sub .sub{display:none!important}}

.btn{display:inline-block;border:0;border-radius:4px;padding:.7rem 1.4rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;background:var(--primary);color:var(--on-primary)}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}

.slide .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;padding-block:3rem}
.hero-copy{display:flex;flex-direction:column;gap:1.1rem;min-width:0}
.eyebrow{font-size:.85rem;font-weight:700;color:var(--primary)}
.lead{font-size:1.1rem;color:var(--muted);max-width:38rem}
.actions{display:flex;flex-wrap:wrap;gap:.75rem}
.sld{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem;min-width:0}
.sld svg{display:block;width:100%;height:auto;direction:ltr}
.sld figcaption{font-size:.8rem;color:var(--muted);margin-top:.5rem}
figure{margin:0}
.sld .w{stroke:var(--ink);stroke-width:2;fill:none}
.sld .bus{stroke:var(--primary);stroke-width:6;fill:none}
.sld .fillbg{fill:var(--surface);stroke:var(--ink);stroke-width:2}
.sld text{fill:var(--ink);font-family:var(--mono);font-size:11px}
.sld .dim{fill:var(--muted)}

.specs{background:var(--sunk);border-block:1px solid var(--line)}
.specs dl{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 2rem;margin:0;padding-block:1.25rem}
.specs dt{font-size:.8rem;color:var(--muted)}
.specs dd{margin:0;font-weight:700}

section{padding-block:3.25rem}
.head{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.75rem;max-width:44rem}
.head p{color:var(--muted)}

.types{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:0;list-style:none;padding:0;margin:0;border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}
.types li{border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line);background:var(--surface)}
.types a{display:flex;flex-direction:column;gap:.3rem;padding:1.1rem 1.2rem;height:100%;color:var(--ink);text-decoration:none}
.types a:hover{background:var(--sunk)}
.pi{width:2.75rem;height:2.75rem;padding:.55rem;border-radius:6px;background:var(--sunk);fill:none;stroke:var(--primary);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:.35rem;flex:none}
.types a:hover .pi{background:var(--surface)}
.types small{color:var(--muted);font-size:.85rem;line-height:1.7}
.types .code{font-family:var(--mono);font-size:.72rem;color:var(--primary);direction:ltr;text-align:right}

.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem 2rem;counter-reset:s}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:.4rem;padding-top:.9rem;border-top:3px solid var(--ink);min-width:0}
.steps li::before{content:"مرحله " counter(s,persian);font-size:.8rem;font-weight:700;color:var(--primary)}
.steps .pi{order:-1;background:var(--bg)}
.steps p{color:var(--muted);font-size:.95rem}

.band{background:var(--surface);border-block:1px solid var(--line)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.two>*{min-width:0}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:right;padding:.65rem .75rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;color:var(--muted);font-weight:700}
td:first-child{font-weight:700;white-space:nowrap}

form{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1.25rem}
form .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:700;min-width:0}
input,select,textarea{font:inherit;padding:.6rem .7rem;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);width:100%}
.cap{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem}
.cap img{border:1px solid var(--line);border-radius:4px;background:#f3f6ee;height:auto}
.cap label{flex:1 1 9rem}
.cap .btn{padding:.55rem .9rem;font-size:.85rem}
.hp{position:absolute;inset-inline-start:-9999px;width:1px;height:1px;opacity:0}
.btn[disabled]{opacity:.6;cursor:default}
.note{font-size:.85rem;color:var(--muted)}
.ok{background:var(--sunk);border-inline-start:4px solid var(--signal);padding:.6rem .8rem;font-size:.9rem}

.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;list-style:none;padding:0;margin:0}
.projects li{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.ph{aspect-ratio:4/3;max-width:100%;background:repeating-linear-gradient(135deg,var(--sunk) 0 12px,var(--surface) 12px 24px);border:1px dashed var(--line);border-radius:4px;display:grid;place-items:center;color:var(--muted);font-size:.8rem;text-align:center;padding:.5rem}
.projects small{color:var(--muted)}

details{border-bottom:1px solid var(--line);padding-block:.9rem}
summary{cursor:pointer;font-weight:700}
details p{color:var(--muted);margin-top:.5rem;max-width:46rem}

.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;list-style:none;padding:0;margin:0}
.posts li{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.posts a{font-weight:700;text-decoration:none}
.posts small{color:var(--muted);line-height:1.7}

footer{background:var(--ink);color:var(--bg);padding-block:2.5rem;font-size:.92rem}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
footer h3{margin-bottom:.5rem}
footer ul{list-style:none;padding:0;margin:0}
footer a{color:inherit}
footer address{font-style:normal}
.rel{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--muted)}
.rel ul{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 2rem}
@media (max-width:860px){.rel ul{grid-template-columns:1fr}}
.copy{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--muted);font-size:.8rem;opacity:.8}

@media (max-width:860px){
  .slide .wrap,.two,footer .cols{grid-template-columns:1fr}
  .steps,.projects,.posts{grid-template-columns:1fr 1fr}
  .specs dl{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .steps,.projects,.posts,form{grid-template-columns:1fr}
  .nav{margin-inline-start:0;width:100%;font-size:.9rem}
  section{padding-block:2.25rem}
}

.banner{background:linear-gradient(135deg,var(--sunk),var(--bg) 60%);border-bottom:1px solid var(--line)}
.slides{display:grid}
.slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s;min-width:0}
.slide.on{opacity:1;visibility:visible}
.slide .wrap{padding-bottom:1.5rem}
.slide .big{font-size:clamp(1.9rem,4.6vw,3.1rem);font-weight:900;line-height:1.35;text-wrap:balance}
.ctrl{display:flex;align-items:center;gap:.5rem;padding-bottom:1.25rem}
.ctrl button{font:inherit;border:1px solid var(--ink);background:var(--surface);color:var(--ink);border-radius:4px;min-width:2.4rem;height:2.4rem;cursor:pointer;padding-inline:.6rem}
.dots{display:flex;gap:.4rem;margin-inline:.5rem}
.dots button{min-width:0;width:2rem;height:.5rem;padding:0;border-radius:99px;background:var(--line);border:0}
.dots button[aria-current="true"]{background:var(--primary)}
.art .body{fill:var(--surface);stroke:var(--ink);stroke-width:2}
.art .dark{fill:var(--ink)}
.art .soft{fill:var(--sunk);stroke:var(--ink);stroke-width:1.5}
.art .tick{stroke:var(--primary);stroke-width:3;fill:none}
.sld .flow{stroke:var(--signal);stroke-width:2;fill:none;stroke-dasharray:10 14}
@media (prefers-reduced-motion:no-preference){
  .sld .flow{animation:flow 1.2s linear infinite}
  .lamp{animation:blink 1.6s steps(1) infinite}.lamp.b{animation-delay:.5s}.lamp.c{animation-delay:1s}
  .needle{transform-origin:118px 150px;animation:sweep 3s ease-in-out infinite alternate}
}
@keyframes flow{to{stroke-dashoffset:-24}}
@keyframes blink{50%{opacity:.25}}
@keyframes sweep{from{transform:rotate(-50deg)}to{transform:rotate(35deg)}}
.sld.photo{padding:.5rem}
.sld.photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.sld.photo figcaption{padding-inline:.5rem}
.gfil .atab[aria-pressed="true"]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.gal{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:1rem}
.gal li{min-width:0;display:flex;flex-direction:column;gap:.4rem}
.gal p{font-size:.85rem;color:var(--muted);line-height:1.6}
.gbtn{display:block;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--sunk);cursor:zoom-in}
.gbtn img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .3s}
.gbtn:hover img{transform:scale(1.04)}
dialog#lb{border:0;padding:0;background:transparent;max-width:min(96vw,60rem);max-height:96vh;color:#fff;overflow:visible}
dialog#lb::backdrop{background:rgb(0 0 0 / .85)}
#lb img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;margin-inline:auto;border-radius:6px;background:#111}
#lb-cap{text-align:center;margin-block:.6rem}
.lbc{display:flex;justify-content:center;gap:.5rem}
.lbc button{font:inherit;font-weight:700;padding:.45rem 1rem;border-radius:4px;border:1px solid #fff;background:transparent;color:#fff;cursor:pointer}
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:2rem;align-items:start}
.contact-grid>*{min-width:0}
.nap{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0 0 1.25rem}
.nap dt{font-weight:700;font-size:.85rem;color:var(--muted)}
.nap dd{margin:0}
.map{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface)}
.map iframe{display:block;width:100%;height:22rem;border:0}
.mapph{height:22rem;display:grid;place-items:center;text-align:center;padding:1rem;color:var(--muted);font-size:.9rem;
  background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 44px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/44px 100%,var(--sunk)}
.mapph svg{width:2.5rem;height:2.5rem;display:block;margin:0 auto .5rem}
.sitemap{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.sitemap h3{margin-bottom:.4rem}
.sitemap ul{list-style:none;padding:0;margin:0;font-size:.92rem}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}.sitemap{grid-template-columns:1fr 1fr}}

[hidden]{display:none!important}
.atabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.atab{font:inherit;font-weight:700;font-size:.92rem;padding:.5rem 1rem;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.atab[aria-selected="true"]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.astage{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem;align-items:start}
.astage>*{min-width:0}
.scene{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem}
.scene figcaption{min-height:3.8em;margin-top:.5rem;font-weight:500}
.sc{display:block;width:100%;height:auto;direction:ltr}
.sc text{font-family:var(--mono);font-size:11px;fill:var(--muted)}
.sc [data-step]{opacity:0;transform:translateY(-12px);transition:opacity .5s,transform .5s}
.sc [data-step].in{opacity:1;transform:none}
.sc .floor{stroke:var(--ink);stroke-width:2}
.sc .bp{fill:none;stroke:var(--primary);stroke-width:1.5;stroke-dasharray:6 5}
.sc .raw{fill:var(--sunk);stroke:var(--ink);stroke-width:2}
.sc .ol{stroke:#26332b;stroke-width:2}
.sc .dk{fill:#26332b}
.sc .rail{fill:#9aa39c}
.sc .dev{fill:#f6f7f2;stroke:#26332b;stroke-width:1.5}
.sc .dev+text,.sc g text{fill:#26332b}
.sc .tg{fill:#26332b}
.sc .door{fill:none;stroke:#26332b;stroke-width:2}
.sc .draw{fill:none;stroke-width:2.5;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s .3s}
.sc .in .draw{stroke-dashoffset:0}
.sc .cable{stroke:#26332b;stroke-width:7}
.sc .bdg{fill:var(--primary)}.sc .bdgt{fill:none;stroke:var(--on-primary);stroke-width:2.5}.sc g .bdgx{fill:var(--on-primary);font-weight:700}
.sc [data-until] text{fill:var(--primary)}
.worker{transition:transform .9s ease-in-out}
.wleg{fill:var(--ink)}.wbody{fill:var(--primary)}
.arm{stroke:var(--primary);stroke-width:6;stroke-linecap:round;fill:none;transform-box:fill-box;transform-origin:0 0}
@media (prefers-reduced-motion:no-preference){.playing .arm{animation:work .5s ease-in-out infinite alternate}}
@keyframes work{from{transform:rotate(-28deg)}to{transform:rotate(14deg)}}
.asteps{list-style:none;margin:0 0 1rem;padding:0;counter-reset:a;display:flex;flex-direction:column;gap:.3rem}
.asteps li{counter-increment:a}
.astep{font:inherit;width:100%;text-align:right;display:flex;gap:.6rem;align-items:center;padding:.45rem .7rem;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer}
.astep::before{content:counter(a,persian);width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--sunk);color:var(--ink);flex:none}
.astep.done{color:var(--ink)}.astep.done::before{background:var(--signal)}
.astep[aria-current="step"]{background:var(--surface);border-color:var(--line);color:var(--ink);font-weight:700}
.astep[aria-current="step"]::before{background:var(--primary);color:var(--on-primary)}
#anim{margin-bottom:2.75rem}
#anim .scene{background:var(--bg)}
.videos{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;list-style:none;padding:0;margin:0}
.videos li{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.videos small{color:var(--muted)}
.vph{aspect-ratio:16/9;max-width:100%;border-radius:6px;border:1px dashed var(--line);background:var(--sunk);display:grid;place-items:center}
.vph svg{width:3.2rem;height:3.2rem}.vph circle{fill:var(--surface);stroke:var(--primary);stroke-width:1.5}.vph path{fill:var(--primary)}
@media (max-width:860px){.astage{grid-template-columns:1fr}.videos{grid-template-columns:1fr}.asteps{flex-direction:row;flex-wrap:wrap}.asteps li{flex:1 1 9rem}}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth} }
[id]{scroll-margin-top:5rem}
#videos{display:none}
