/* استودیو PyCourse (studio.pycourse.ir) — مستقل از base.html سایتِ آموزشی؛ بدونِ هیچ منبعِ خارجی.
   مفهوم: «نقشه‌ی معمار». آبیِ نقشه (blueprint) = ساختار، زرد = «اقدام کن» (دکمه‌ها)، فیروزه‌ای = جریانِ داده، نعنایی = انجام‌شد.
   موبایل‌محور: همه‌چیز تک‌ستون؛ از ۷۲۰ و ۱۰۰۰ پیکسل به بالا چیدمان باز می‌شود. */
@font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn.woff2") format("woff2-variations");font-weight:300 900;font-style:normal;font-display:swap}
@counter-style fa-num{system:numeric;symbols:"۰" "۱" "۲" "۳" "۴" "۵" "۶" "۷" "۸" "۹"}

:root{
  --bp:#0f3a6d;--bp-d:#0a2748;--bp-l:#1c5296;--bp-line:#9cc4ff;
  --paper:#f5f8fd;--card:#fff;--ink:#0b1e3a;--muted:#52627e;--line:#d3deee;
  --blue:#1d5fd1;--blue-s:#e1ecff;--cyan:#2ad4ee;--yellow:#ffd23f;--yellow-h:#ffdf6e;--mint:#17c39a;--mint-d:#0b8a69;
  --on-bp:#cfe2ff;
  --r:16px;--tap:48px;--gut:18px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:64px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.95 "Vazirmatn",Tahoma,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
.ico{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.st-skip{position:absolute;inset-inline-start:8px;top:-60px;background:var(--yellow);color:var(--ink);padding:10px 16px;border-radius:10px;z-index:100;font-weight:700}
.st-skip:focus{top:8px}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:6px}
.st-sec :focus-visible{outline-color:var(--blue)}

/* ── دکمه‌ها ───────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 22px;border-radius:999px;
  font:800 1rem/1.3 "Vazirmatn",sans-serif;text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:transform .15s,background-color .15s,border-color .15s}
.btn:active{transform:scale(.97)}
.btn-act{background:var(--yellow);color:var(--ink)}
.btn-act:hover{background:var(--yellow-h)}
.btn-ghost{border-color:rgba(156,196,255,.55);color:#fff}
.btn-ghost:hover{border-color:#fff}

/* ── سربرگ ──────────────────────────────────────────────────────────────── */
.st-top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:6px var(--gut);padding-top:calc(6px + env(safe-area-inset-top));background:rgba(10,39,72,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border-bottom:1px solid rgba(156,196,255,.18)}
.st-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.02rem;min-height:var(--tap)}
.st-nav{display:flex;align-items:center;gap:4px}
.st-nav a{display:none;text-decoration:none;color:var(--on-bp);padding:10px 12px;border-radius:999px;font-size:.94rem}
.st-nav a:hover{color:#fff}
.st-nav .st-nav-cta{display:inline-flex;align-items:center;min-height:40px;background:var(--yellow);color:var(--ink);font-weight:800}

/* ── بخش‌ها: پهنای محتوا خودکار وسط می‌ماند، پس‌زمینه تمام‌عرض ──────────── */
.hero,.st-sec,.chat-sec{padding-inline:max(var(--gut),calc((100% - 1080px)/2))}
.st-sec{padding-block:44px 48px;background-color:var(--paper);
  background-image:linear-gradient(rgba(15,58,109,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(15,58,109,.045) 1px,transparent 1px);
  background-size:28px 28px}
.st-sec h2{font-weight:900;font-size:clamp(1.55rem,5.8vw,2.3rem);line-height:1.5;text-wrap:balance}
.lead{color:var(--muted);margin-top:6px;max-width:36em}
.st-sec + .st-sec{border-top:1px solid var(--line)}

/* ── هیرو: نقشه‌ی آبی ──────────────────────────────────────────────────── */
.hero{background-color:var(--bp);color:#fff;padding-block:30px 40px;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:28px 28px,28px 28px,140px 140px,140px 140px}
.hero-in{display:grid;gap:26px}
.byline{display:flex;align-items:center;gap:10px;color:var(--on-bp);font-size:.92rem;line-height:1.7}
.byline b{color:#fff}
.byline-mark{width:34px;height:34px;border-radius:10px;background:var(--yellow);color:var(--ink);font-weight:900;display:grid;place-items:center;flex:none}
.hero h1{margin-top:16px;font-weight:900;font-size:clamp(2rem,8.4vw,3.6rem);line-height:1.38;letter-spacing:-.01em;text-wrap:balance}
.hero-sub{margin-top:14px;color:var(--on-bp);font-size:1.05rem;max-width:34em}
.hero-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.hero-act .btn{flex:1 1 220px}

.map{max-width:420px;width:100%;margin-inline:auto}
.map>svg{width:100%;height:auto;overflow:visible}
.map svg svg{display:inline;max-width:none}
.map figcaption{margin-top:6px;text-align:center;color:var(--on-bp);font-size:.86rem}
.m-lines path{fill:none;stroke:var(--bp-line);stroke-width:1.6;stroke-dasharray:4 6;opacity:.7;animation:mdash 1.6s linear infinite}
.m-pulses circle{fill:var(--cyan);filter:drop-shadow(0 0 4px var(--cyan))}
.m-disc{fill:var(--yellow)}
.m-core text{font:900 14px "Vazirmatn",sans-serif;fill:var(--ink)}
.m-ring{fill:none;stroke:var(--yellow);stroke-width:1.5;opacity:.5;transform-box:fill-box;transform-origin:center;animation:mring 2.8s ease-out infinite}
.m-ring2{animation-delay:1.4s}
.m-node circle{fill:var(--bp-d);stroke:var(--bp-line);stroke-width:1.6}
.m-node .ico{color:#fff}
.m-node text{font:700 12.5px "Vazirmatn",sans-serif;fill:var(--on-bp)}
@keyframes mdash{to{stroke-dashoffset:-20}}
@keyframes mring{from{transform:scale(.9);opacity:.6}to{transform:scale(1.5);opacity:0}}

/* ── انتخابگرِ حوزه ─────────────────────────────────────────────────────── */
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.fchip{min-height:var(--tap);padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);
  font:700 .95rem/1.2 "Vazirmatn",sans-serif;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.fchip:hover{border-color:var(--blue)}
.fchip[aria-selected="true"]{background:var(--bp);border-color:var(--bp);color:#fff}
.fpanels{margin-top:14px}
.fp{background:var(--card);border:1.5px solid var(--bp);border-radius:var(--r);padding:16px 16px 18px;box-shadow:6px 6px 0 var(--blue-s);animation:fpin .3s both}
@keyframes fpin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fsys{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.fsys li{display:grid;justify-items:center;gap:4px;text-align:center;font-size:.72rem;line-height:1.5;font-weight:700;color:var(--muted);opacity:.38}
.fsys li.on{opacity:1;color:var(--blue)}
.fsys li.on .ico{stroke:var(--blue)}
.fitems{margin-top:14px;display:grid;gap:8px}
.fitems li{position:relative;padding-inline-start:26px}
.fitems li::before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:14px;height:14px;border-radius:50%;background:var(--mint)}
.fitems li::after{content:"";position:absolute;inset-inline-start:3.5px;top:calc(.62em + 3.5px);width:7px;height:3.5px;border:solid var(--ink);border-width:0 0 2px 2px;transform:rotate(-45deg)}
.fproof{display:inline-flex;align-items:center;min-height:var(--tap);margin-top:8px;font-weight:800;color:var(--blue);text-decoration:none}
.fproof::after{content:"";width:8px;height:8px;border:solid currentColor;border-width:2px 0 0 2px;transform:rotate(-45deg);margin-inline-start:8px}
.fproof:hover{text-decoration:underline}

/* ── یک روزِ کاری: امروز ⇄ با ما ─────────────────────────────────────── */
.st-dark{background-color:var(--bp);color:#fff;border-top:0!important;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:28px 28px}
.st-dark .lead{color:var(--on-bp)}
.seg{display:inline-flex;margin-top:20px;padding:4px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(156,196,255,.3)}
.seg button{min-height:44px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:var(--on-bp);font:800 .98rem/1 "Vazirmatn",sans-serif;cursor:pointer;transition:background-color .2s,color .2s}
.seg button[aria-pressed="true"]{background:var(--yellow);color:var(--ink)}
.day{margin-top:18px;display:grid}
.day li{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:16px 0;border-top:1px solid rgba(156,196,255,.25)}
.d-time{font-weight:900;color:var(--cyan);font-size:1.02rem;padding-top:2px;font-feature-settings:"tnum"}
.d-body{display:grid}
.d-body h3{grid-area:1/1;font-weight:800;font-size:1.04rem;line-height:1.7}
.d-b,.d-a{grid-area:2/1;transition:opacity .35s,transform .35s;line-height:1.9}
.d-b{color:var(--on-bp)}
.d-a{font-weight:600;color:#fff;position:relative;padding-inline-start:24px}
.d-a::before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:13px;height:13px;border-radius:50%;background:var(--mint)}
.d-a::after{content:"";position:absolute;inset-inline-start:3px;top:calc(.62em + 3px);width:7px;height:3.5px;border:solid var(--ink);border-width:0 0 2px 2px;transform:rotate(-45deg)}
.daybox[data-mode="before"] .d-a{opacity:0;transform:translateY(8px);visibility:hidden}
.daybox[data-mode="after"] .d-b{opacity:0;transform:translateY(-8px);visibility:hidden}

/* ── اعتماد ─────────────────────────────────────────────────────────────── */
.promises{margin-top:20px;display:grid;gap:14px}
.promises li{padding:2px 16px 2px 0;border-inline-start:3px solid var(--blue);padding-inline-start:16px;padding-inline-end:0}
.promises h3{font-weight:800;font-size:1.1rem;line-height:1.7}
.promises p{color:var(--muted)}

/* ── نمونه‌کارها: موبایل = اسکرولِ افقی با snap ───────────────────────── */
.work{position:relative;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:20px;padding:4px var(--gut) 18px;margin-inline:calc(-1 * var(--gut));
  scroll-padding-inline:var(--gut);overscroll-behavior-x:contain;scrollbar-width:none}
.work::-webkit-scrollbar{display:none}
.work-pos{font-size:.86rem;color:var(--muted);text-align:center;min-height:1.6em}
.proj{position:relative;flex:0 0 min(78vw,300px);scroll-snap-align:start;background:var(--card);border:1.5px solid var(--bp);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;--a1:#3a3df0;--a2:#e4e6ff}
.proj-ai{--a1:#0b6f86;--a2:#d6f6fb}
.proj-pay{--a1:#0b8a69;--a2:#d9f6ec}
.proj-trk{--a1:#c8571c;--a2:#fbe6d6}
.proj-sfi{--a1:#0a8a68;--a2:#d9f6ec}
.proj-roniz{--a1:#14573a;--a2:#e9e2cb}
.proj-tw{--a1:#7a3cf0;--a2:#ece3ff}
.art{position:relative;aspect-ratio:16/10;background:var(--a2);overflow:hidden;border-bottom:1.5px solid var(--bp)}
.proj-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.proj h3{font-weight:900;font-size:1.3rem;line-height:1.5}
.proj-kind{color:var(--a1);font-weight:800;font-size:.92rem}
.proj-body>p:not(.proj-kind){color:var(--muted);font-size:.96rem}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chips li{font:600 .76rem/1 "Vazirmatn",sans-serif;color:var(--muted);background:var(--paper);border:1px solid var(--line);padding:7px 10px;border-radius:999px}
.proj-link{margin-top:auto;padding-top:12px;font-weight:800;color:var(--a1);text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
.proj-link::after{content:"";width:8px;height:8px;border:solid currentColor;border-width:2px 0 0 2px;transform:rotate(-45deg);margin-inline-start:8px}
.proj-link:hover{text-decoration:underline}

/* تصویرسازی‌های CSS؛ فقط وقتی در دیدند حرکت می‌کنند (.in) */
.art *{animation-play-state:paused}
.art.in *{animation-play-state:running}
/* PyCourse: کدی که تایپ می‌شود و اجرا می‌شود */
.a-win{position:absolute;inset:12% 10% 12%;background:#12153a;border-radius:12px;padding:16px 14px;display:grid;align-content:start;gap:9px;direction:ltr}
.a-win::before{content:"";position:absolute;top:8px;left:12px;width:30px;height:6px;background:radial-gradient(circle at 3px 3px,#ff6b6b 3px,transparent 3.5px),radial-gradient(circle at 15px 3px,#f5a524 3px,transparent 3.5px),radial-gradient(circle at 27px 3px,#16c79a 3px,transparent 3.5px)}
.a-l{display:block;height:7px;border-radius:4px;margin-top:6px;transform-origin:left;animation:aline 4s infinite}
.a-l1{width:48%;background:#7b83ff}.a-l2{width:70%;background:#16c79a;animation-delay:.5s;margin-inline-start:14px}
.a-l3{width:56%;background:#f5a524;animation-delay:1s;margin-inline-start:14px}.a-l4{width:34%;background:#7b83ff;animation-delay:1.5s}
.a-cur{width:8px;height:14px;background:#fff;animation:ablink 1s steps(2) infinite}
.a-ok{position:absolute;inset-inline-end:14px;bottom:12px;width:34px;height:34px;border-radius:50%;background:var(--mint);animation:apop 4s infinite;display:grid;place-items:center}
.a-ok::after{content:"";width:12px;height:6px;border:solid #12153a;border-width:0 0 3px 3px;transform:rotate(-45deg) translateY(-1px)}
@keyframes aline{0%{transform:scaleX(0)}25%,100%{transform:scaleX(1)}}
@keyframes ablink{50%{opacity:0}}
@keyframes apop{0%,60%{transform:scale(0)}72%,100%{transform:scale(1)}}
/* Roniz: بلیطِ سفارش و وضعیتِ آن */
.a-tk{position:absolute;inset:14% 24% 14%;background:#fff;border-radius:10px;padding:16px 16px;display:grid;align-content:start;gap:10px;box-shadow:0 12px 28px -14px rgba(20,87,58,.5);animation:atk 5s infinite}
.a-tk i{height:7px;border-radius:4px;background:#d8d0bd}.a-tk i:nth-child(2){width:72%}.a-tk i:nth-child(3){width:48%}
.a-pill{height:20px;width:70%;border-radius:999px;background:#e8a33d;animation:apill 5s infinite;margin-top:6px}
.a-ring{position:absolute;inset-inline-start:9%;top:16%;width:34px;height:34px;border-radius:50%;border:4px solid rgba(20,87,58,.2);border-top-color:#14573a;animation:aspin 1.4s linear infinite}
@keyframes atk{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes apill{0%,55%{background:#e8a33d;width:70%}70%,100%{background:#3d9b6b;width:100%}}
@keyframes aspin{to{transform:rotate(360deg)}}
/* تراکتورک: کاشیِ محصولات و سبد */
.a-grid{position:absolute;inset:14% 28% 14% 10%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.a-grid i{background:#fff;border-radius:8px;border-bottom:5px solid #c8571c;animation:atile 3.6s infinite}
.a-grid i:nth-child(2){animation-delay:.3s}.a-grid i:nth-child(3){animation-delay:.6s}.a-grid i:nth-child(4){animation-delay:.9s}.a-grid i:nth-child(5){animation-delay:1.2s}.a-grid i:nth-child(6){animation-delay:1.5s}
.a-gear{position:absolute;inset-inline-end:11%;top:15%;width:44px;height:44px;border-radius:50%;border:8px dotted #c8571c;animation:aspin 6s linear infinite}
.a-cart{position:absolute;inset-inline-end:12%;bottom:16%;width:40px;height:26px;border:4px solid #c8571c;border-radius:4px 4px 12px 12px}
.a-cart b{position:absolute;top:-16px;inset-inline-end:-10px;width:16px;height:16px;border-radius:50%;background:#f5a524;animation:apop 3.6s infinite}
@keyframes atile{0%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}
/* Teaching World: گفتگو و موجِ صدا */
.a-b{position:absolute;border-radius:16px;background:#fff}
.a-b1{inset-inline-start:10%;top:16%;width:46%;height:26%;border-end-start-radius:4px}
.a-b2{inset-inline-end:10%;top:46%;width:40%;height:24%;background:#7a3cf0;border-end-end-radius:4px;display:flex;align-items:center;justify-content:center;gap:6px}
.a-b2 u{width:7px;height:7px;border-radius:50%;background:#fff;animation:adot 1.2s infinite}.a-b2 u:nth-child(2){animation-delay:.2s}.a-b2 u:nth-child(3){animation-delay:.4s}
.a-wave{position:absolute;inset-inline-start:10%;bottom:10%;display:flex;align-items:flex-end;gap:5px;height:24px}
.a-wave i{width:5px;border-radius:3px;background:#7a3cf0;animation:awave 1s ease-in-out infinite}
.a-wave i:nth-child(1){height:30%}.a-wave i:nth-child(2){height:70%;animation-delay:.1s}.a-wave i:nth-child(3){height:50%;animation-delay:.2s}.a-wave i:nth-child(4){height:100%;animation-delay:.3s}.a-wave i:nth-child(5){height:60%;animation-delay:.4s}.a-wave i:nth-child(6){height:80%;animation-delay:.5s}.a-wave i:nth-child(7){height:40%;animation-delay:.6s}
@keyframes adot{50%{opacity:.25;transform:translateY(-3px)}}
@keyframes awave{50%{transform:scaleY(.35)}}
/* SafeFillerInject: اسکنِ تصویر */
.a-img{position:absolute;inset:12% 22%;border-radius:14px;background:linear-gradient(135deg,#7fd9bf,#0a8a68);overflow:hidden}
.a-box{position:absolute;border:3px solid #fff;border-radius:6px;animation:abox 4s infinite}
.a-box1{inset-inline-start:18%;top:26%;width:34%;height:30%}.a-box2{inset-inline-end:14%;bottom:18%;width:26%;height:24%;animation-delay:1.3s}
.a-scan{position:absolute;inset-inline:0;height:3px;background:#fff;box-shadow:0 0 16px 4px rgba(255,255,255,.8);animation:ascan 4s ease-in-out infinite}
.a-chip{position:absolute;inset-inline-end:8%;bottom:10%;width:46px;height:20px;border-radius:999px;background:#12153a;animation:apop 4s infinite}
@keyframes ascan{0%,100%{top:0}50%{top:calc(100% - 3px)}}
@keyframes abox{0%,30%{opacity:0;transform:scale(1.2)}45%,100%{opacity:1;transform:none}}


/* AI gateway: توکن‌هایی که ردیف می‌شوند و کیف‌پولِ ریالی */
.a-tok{position:absolute;inset:16% 40% 16% 10%;display:grid;align-content:center;gap:8px}
.a-tok i{display:block;height:9px;border-radius:5px;background:var(--a1);transform-origin:right;animation:atok 3.4s infinite}
.a-tok i:nth-child(odd){width:100%}.a-tok i:nth-child(even){width:68%}
.a-tok i:nth-child(2){animation-delay:.25s}.a-tok i:nth-child(3){animation-delay:.5s}.a-tok i:nth-child(4){animation-delay:.75s}.a-tok i:nth-child(5){animation-delay:1s}.a-tok i:nth-child(6){animation-delay:1.25s}
.a-wal{position:absolute;inset-inline-end:10%;top:20%;width:30%;height:56%;background:#fff;border:3px solid var(--a1);border-radius:12px;display:grid;align-items:end;padding:8px}
.a-wal b{display:block;width:100%;border-radius:5px;background:var(--mint);animation:awal 3.4s infinite}
@keyframes atok{0%{transform:scaleX(0)}30%,100%{transform:scaleX(1)}}
@keyframes awal{0%{height:20%}60%,100%{height:78%}}
/* کارت‌به‌کارت: پیامک بانک و تیکِ تأیید */
.a-ph{position:absolute;inset:14% 52% 10% 12%;background:#fff;border:3px solid var(--a1);border-radius:16px;display:grid;align-content:start;gap:8px;padding:12px 8px}
.a-sms{display:block;height:14px;border-radius:7px;background:var(--a2);animation:asms 4s infinite}
.a-sms2{width:70%;animation-delay:.8s}
.a-tick{position:absolute;inset-inline-end:8px;bottom:8px;width:24px;height:24px;border-radius:50%;background:var(--mint);animation:apop 4s infinite}
.a-tick::after{content:"";position:absolute;inset:6px 5px 8px;border:solid var(--ink);border-width:0 0 3px 3px;transform:rotate(-45deg)}
.a-qr{position:absolute;inset-inline-end:12%;top:22%;width:30%;aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;background:#fff;border:3px solid var(--a1);border-radius:10px}
.a-qr i{background:var(--a1);border-radius:3px}.a-qr i:nth-child(2){background:var(--a2)}.a-qr i:nth-child(3){background:var(--a2)}
@keyframes asms{0%{opacity:0;transform:translateY(8px)}25%,100%{opacity:1;transform:none}}

/* ── فرایند ─────────────────────────────────────────────────────────────── */
.steps{margin-top:20px;display:grid;gap:18px;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding-inline-start:54px}
.steps li::before{content:counter(s,fa-num);position:absolute;inset-inline-start:0;top:2px;width:38px;height:38px;border-radius:50%;
  border:2px solid var(--bp);background:var(--card);display:grid;place-items:center;font-weight:900;color:var(--bp)}
.steps h3{font-weight:800;font-size:1.1rem;line-height:1.7}
.steps p{color:var(--muted)}

/* ── معمار: جدولِ مشخصاتِ نقشه ──────────────────────────────────────── */
.tblock{margin-top:18px;border:2px solid var(--bp);background:var(--card);max-width:560px}
.tb-row{display:flex;justify-content:space-between;gap:16px;padding:10px 14px;border-top:1px solid var(--line);font-size:.95rem;line-height:1.7}
.tb-row:first-child{border-top:0}
.tb-row span{color:var(--muted);flex:none}
.tb-row b{font-weight:800;text-align:end}
.tb-head{background:var(--bp);color:#fff}
.tb-head span{color:var(--on-bp)}
.who-text{margin-top:16px;max-width:36em}
.direct{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.direct-note{margin-top:20px;color:var(--on-bp)}
.dbtn{flex:1 1 150px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:0 18px;border-radius:999px;
  font-weight:800;text-decoration:none;color:#fff;transition:transform .15s,filter .15s}
.dbtn:active{transform:scale(.97)}
.dbtn:hover{filter:brightness(1.1)}
.dbtn-tg{background:#229ed9}
.dbtn-bale{background:#17a58a}

/* ── سؤال‌ها ────────────────────────────────────────────────────────────── */
.faq{margin-top:18px;display:grid}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;min-height:var(--tap);padding:12px 0;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:10px;height:10px;border:solid var(--blue);border-width:0 0 3px 3px;transform:rotate(-45deg);transition:transform .2s;flex:none;margin-top:-4px}
.faq details[open] summary::after{transform:rotate(135deg);margin-top:4px}
.faq details p{padding-bottom:14px;color:var(--muted);max-width:38em}

/* ── گفتگو (آبیِ تیره، ته‌ِ مسیر) ─────────────────────────────────────── */
.chat-sec{background-color:var(--bp-d);color:#fff;padding-block:44px 40px;scroll-margin-top:56px;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px}
.chat-in{max-width:620px;margin-inline:auto}
.chat-head h2{font-weight:900;font-size:clamp(1.6rem,6vw,2.3rem);line-height:1.5}
.chat-head p{color:var(--on-bp);margin-top:6px}
.chat{margin-top:22px;background:var(--bp-d);border:1.5px solid var(--bp-line);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:8px 8px 0 rgba(0,0,0,.25)}
.chat-log{padding:18px 14px 6px;display:flex;flex-direction:column;gap:10px;min-height:220px;max-height:min(62svh,520px);overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}
.m{max-width:88%;padding:10px 14px;border-radius:16px;line-height:1.85;overflow-wrap:anywhere}
.m-bot{align-self:flex-start;background:rgba(255,255,255,.12);border-end-start-radius:4px}
.m-me{align-self:flex-end;background:var(--blue);border-end-end-radius:4px;font-weight:600}
.m-ok{background:rgba(23,195,154,.18);border:1px solid rgba(23,195,154,.6)}
.m-err{background:rgba(255,107,107,.16);border:1px solid rgba(255,107,107,.55)}
.m-typing{display:flex;gap:5px;align-items:center;padding:14px}
.m-typing i{width:7px;height:7px;border-radius:50%;background:var(--on-bp);animation:adot 1s infinite}
.m-typing i:nth-child(2){animation-delay:.15s}.m-typing i:nth-child(3){animation-delay:.3s}
.m-pop{animation:mpop .3s both}
@keyframes mpop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes adot{50%{opacity:.25;transform:translateY(-3px)}}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 14px 12px}
.chat-chips:empty{display:none}
.chip{min-height:var(--tap);padding:0 16px;border-radius:999px;border:1.5px solid rgba(207,226,255,.45);background:transparent;color:#fff;
  font:600 .95rem/1.2 "Vazirmatn",sans-serif;cursor:pointer;transition:background-color .15s,border-color .15s}
.chip:hover{border-color:#fff}
.chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue)}
.chip-go{background:var(--yellow);border-color:var(--yellow);color:var(--ink);font-weight:800}
.chip-go:hover{background:var(--yellow-h);border-color:var(--yellow-h)}
.chat-bar{display:flex;gap:8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid rgba(156,196,255,.25);background:rgba(0,0,0,.2)}
.chat-bar input[type=text]:not(.hp){flex:1;min-width:0;min-height:var(--tap);border-radius:999px;border:1.5px solid rgba(207,226,255,.35);background:rgba(255,255,255,.08);
  color:#fff;padding:0 18px;font:500 1rem "Vazirmatn",sans-serif}
.chat-bar input::placeholder{color:#8fb0e0}
.chat-bar input:focus{outline:none;border-color:var(--yellow)}
.chat-bar input[dir=ltr]{text-align:left}
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);pointer-events:none}
.chat-send{width:var(--tap);height:var(--tap);border-radius:50%;border:0;background:var(--yellow);color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none}
.chat-send:disabled{opacity:.45;cursor:default}
.chat-ns{padding:14px}

.st-foot{background:var(--bp-d);color:var(--on-bp);padding:22px var(--gut) 26px;font-size:.9rem;border-top:1px solid rgba(156,196,255,.2);display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between}
.st-foot a{color:#fff}

/* ── نوارِ ثابتِ پایین (ناحیه‌ی شست) ───────────────────────────────────── */
.cta-bar{position:fixed;inset-inline:0;bottom:0;z-index:50;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));
  background:linear-gradient(rgba(245,248,253,0),var(--paper) 52%);display:flex;justify-content:center;align-items:center;gap:10px;pointer-events:none;
  transform:translateY(0);transition:transform .25s}
.cta-bar[hidden]{display:flex;transform:translateY(120%);visibility:hidden}
.cta-bar .btn{pointer-events:auto;flex:1;max-width:320px;box-shadow:0 10px 30px -8px rgba(0,0,0,.5)}
.ico-btn{pointer-events:auto;width:var(--tap);height:var(--tap);border-radius:50%;display:grid;place-items:center;background:var(--bp);color:#fff;
  box-shadow:0 10px 30px -8px rgba(0,0,0,.5);flex:none}

/* ── بزرگ‌تر ─────────────────────────────────────────────────────────── */
@media (min-width:720px){
  :root{--gut:32px}
  .st-nav a{display:inline-flex}
  .hero{padding-block:64px 52px}
  .hero-in{grid-template-columns:1.1fr .9fr;align-items:center;gap:48px}
  .hero-act .btn{flex:0 0 auto}
  .promises{grid-template-columns:repeat(2,1fr);gap:22px 36px}
  .steps{grid-template-columns:repeat(2,1fr);gap:26px 36px}
  .fp{padding:22px 24px 24px}
  .fitems{grid-template-columns:repeat(2,1fr);gap:10px 28px}
  .fsys li{font-size:.84rem}
  .day li{grid-template-columns:90px 1fr}
  .who-text{font-size:1.04rem}
}
@media (min-width:1000px){
  .st-sec{padding-block:60px 64px}
  .work{display:grid;grid-template-columns:repeat(6,1fr);overflow:visible;margin-inline:0;padding:4px 0 8px;gap:18px}
  .proj{flex:none;grid-column:span 2}
  .proj-ai{grid-column:span 6;flex-direction:row}
  .proj-ai .art{aspect-ratio:auto;flex:1.1;border-bottom:0;border-inline-end:1.5px solid var(--bp)}
  .proj-ai .proj-body{flex:1;padding:28px 30px;justify-content:center}
  .proj-pay,.proj-trk{grid-column:span 3}
  .work-pos{display:none}
  .cta-bar{display:none}
  body{padding-bottom:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media (hover:none){.btn:hover,.chip:hover,.dbtn:hover{filter:none}}
