/* ══════════════════════════════════════════════════════════════════════════
   text.css — اجزای مشترکِ صفحه‌های متنیِ نمونه (گام ۶).

   چرا جدا از site.css: این کلاس‌ها فقط در ۷ صفحه لازم‌اند و بردنشان به پوستهٔ
   مشترک، ۲۳ صفحه را بی‌دلیل سنگین می‌کرد. توکن‌ها همان توکن‌های site.css‌اند و
   اینجا هیچ توکنی دوباره تعریف نمی‌شود.

   ترتیب بارگذاری: site.css اول، بعد این.
   ══════════════════════════════════════════════════════════════════════════ */

/* ═══ نشانهٔ «هنوز تایید نشده» ═══
   عینِ همان قرارداد صفحهٔ گاردین: هر عددی که منبعِ تاییدشده ندارد نارنجی می‌شود
   تا تصادفی منتشر نشود. */
.todo-val{color:var(--gc-warning);font-weight:700}
/* ⚠ .note-warn حذف شد: کادرهای نارنجیِ «یادداشت به مالک» از هر شش صفحه
   برداشته و به کامنتِ HTML منتقل شدند، پس این کلاس صفر کاربر داشت. */

/* ═══ لیستِ بازشو ═══
   انتخاب‌های زیاد (کاربری ۹ گزینه) با pill جا نمی‌شوند، پس select است.
   دو نکته: پیکانِ بومی حذف و پیکانِ خودمان سمتِ چپ می‌نشیند (RTL)، و
   color-scheme تنها چیزی است که پاپ‌آپِ خودِ مرورگر را تیره می‌کند.
   🔴 حالتِ hover هم باید background-image را تکرار کند، وگرنه شورت‌هندِ
   .inp:hover در site.css پیکان را پاک می‌کند (ویژگی‌اش بالاتر است). */
select.inp,select.inp:hover,select.inp:focus{
  appearance:none;-webkit-appearance:none;color-scheme:dark;cursor:pointer;
  padding-inline-end:42px;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%237a7a85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left 16px center;background-size:13px auto}
select.inp option{background:var(--gc-elevated);color:var(--gc-text)}

/* ═══ ستونِ متنِ بلند ═══ */
.legal{display:grid;grid-template-columns:236px minmax(0,1fr);gap:56px;align-items:start}
.prose{max-width:74ch;font-size:15px;line-height:2.15;color:var(--gc-text-mid)}
.prose h2{font-size:20px;font-weight:800;color:var(--gc-text);margin:44px 0 12px;line-height:1.7}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:16px;font-weight:700;color:var(--gc-text);margin:28px 0 8px;line-height:1.8}
.prose p{margin:0 0 14px}
.prose ul,.prose ol{margin:0 0 16px;padding-inline-start:22px}
.prose li{margin-bottom:9px}
.prose li::marker{color:var(--gc-violet-ink)}
.prose strong{color:var(--gc-text);font-weight:700}
.prose a{color:var(--gc-violet-ink);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(var(--gc-violet-rgb),.45)}
.prose a:hover{color:#cbb6ff}
.prose hr{border:0;height:1px;background:var(--gc-hairline);margin:34px 0}

/* ═══ متنِ بلندِ خواندنی ، بلاگ و مقاله‌های محاسبه‌گر ═══
   🔴 دستور مالک ۲۴ مرداد: «سایز متن بلاگ و متون پایین محاسبه‌گرها بهتره یکم درحد
   ۱۰ تا ۲۰ درصد بزرگ‌تر بشه». ۱۵ ⇒ ۱۷ یعنی ۱۳٪، وسطِ همان بازه.
   ⚠ عمداً روی خودِ `.prose` ننشست: صفحه‌های قوانین و حریم خصوصی هم `.prose` دارند و
     متنِ مرجع‌اند نه متنِ خواندنی. اگر آن‌ها را هم خواست، فقط دو انتخابگر اضافه شود.
   ⚠ `line-height` از ۲.۱۵ به ۲.۱ آمد چون ضریب روی قلمِ بزرگ‌تر ضرب می‌شود: با
     همان ۲.۱۵، فاصلهٔ سطرها از ۳۲.۳ به ۳۶.۶ می‌پرید و بند از هم می‌پاشید. حالا ۳۵.۷. */
.bp-art .prose,
.calc-article .prose,
.tfml-article .prose{font-size:17px;line-height:2.1}
.bp-art .prose h2,
.calc-article .prose h2,
.tfml-article .prose h2{font-size:23px}
.bp-art .prose h3,
.calc-article .prose h3,
.tfml-article .prose h3{font-size:18px}
.bp-art .prose table,
.calc-article .prose table,
.tfml-article .prose table{font-size:15px}

/* ═══ رنگ‌هایی که از وردپرس آمده‌اند ═══
   🔴 متنِ منتقل‌شده رنگش را با کلاس‌های خودِ وردپرس می‌گرفت
   (`has-inline-color has-vivid-red-color`) و ما آن کلاس‌ها را نداشتیم. زمینهٔ
   `<mark>` با استایلِ درون‌خطی برداشته شده بود ولی **رنگِ متنش** پیش‌فرضِ خودِ
   مرورگر می‌ماند، یعنی `#000` روی زمینهٔ تیره ⇒ ناخوانا. مالک روی مقالهٔ باتلنک
   دید: «سه رنگ سبز و قرمز و بنفش داشته که همشون مشکی شدن».
   ⚠ اندازه‌گیری شد: هر چهار `mark` مقدارِ `rgb(0,0,0)` می‌دادند.
   ⚠ فقط همین سه کلاس در دادهٔ ما هست (کلِ ۱۲۰ نوشته + دو مقاله جارو شد)، پس کلِ
     پالتِ وردپرس کپی نشده ، هرچه واقعا استفاده شده، نه بیشتر. */
.prose mark{background:transparent;color:inherit}
.prose .has-vivid-green-cyan-color{color:var(--gc-success-ink)}
.prose .has-vivid-red-color{color:var(--gc-danger-ink)}
.prose .has-vivid-purple-color{color:var(--gc-violet-ink)}
/* بلوکِ برجسته برای بندهایی که واقعا مهم‌اند (ریسک سخت‌افزار، اشتراکِ جدا) */
.prose .call{background:var(--gc-surface);border-radius:var(--r-md);padding:18px 20px;margin:20px 0;
  box-shadow:inset 0 0 0 1px var(--gc-hairline);color:var(--gc-text-mid)}
.prose .call b{color:var(--gc-text)}
.prose .call.hot{box-shadow:inset 0 0 0 1px rgba(var(--gc-danger-rgb),.32);
  background:linear-gradient(180deg,rgba(var(--gc-danger-rgb),.07),transparent),var(--gc-surface)}
.prose table{width:100%;border-collapse:collapse;font-size:14px;margin:18px 0}
.prose th{text-align:start;font-size:12.5px;font-weight:700;color:var(--gc-text-low);padding:0 12px 10px}
.prose td{padding:12px;border-top:1px solid var(--gc-hairline);vertical-align:top;line-height:1.9}

/* فهرستِ چسبان */
/* 🔴 سقفِ ارتفاع و اسکرول: روی پنجرهٔ کوتاه، بندهای آخرِ قوانین از دسترس خارج
   می‌شدند چون فهرست از خودِ صفحه بلندتر بود و جایی برای اسکرول نداشت. */
.toc{position:sticky;top:calc(var(--hdr-h) + 20px);font-size:13.5px;
  max-height:calc(100vh - var(--hdr-h) - 40px);overflow-y:auto;
  scrollbar-width:thin}
.toc h4{margin:0 0 12px;font-size:12px;font-weight:700;color:var(--gc-text-low);letter-spacing:.02em}
.toc a{display:block;padding:7px 12px;border-radius:var(--r-sm);color:var(--gc-text-low2);
  line-height:1.7;transition:background .18s,color .18s;
  border-inline-start:2px solid transparent}
.toc a:hover{background:var(--gc-tint-0);color:var(--gc-text)}
.toc a.on{color:var(--gc-text);background:var(--gc-tint-0);border-inline-start-color:var(--gc-violet)}

.lastup{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:12.5px;
  color:var(--gc-text-low);margin-bottom:34px;padding-bottom:18px;
  border-bottom:1px solid var(--gc-hairline)}
.lastup span{display:inline-flex;align-items:center;gap:7px}

/* ═══ کارت‌های آیکن‌دار ═══ */
.icards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.ic{background:var(--gc-surface);border-radius:var(--r-md);padding:24px 22px;
  box-shadow:inset 0 0 0 1px var(--gc-hairline);position:relative;overflow:hidden}
.ic .ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:rgba(var(--gc-violet-rgb),.16);color:var(--gc-violet-ink)}
.ic.gold .ico{background:var(--gc-gold-dim);color:var(--gc-gold)}
.ic.cyan .ico{background:rgba(var(--gc-cyan-rgb),.14);color:var(--gc-cyan)}
.ic.tg .ico{background:rgba(var(--gc-tg-rgb),.14);color:var(--gc-tg)}
.ic h3{margin:0 0 7px;font-size:15.5px;font-weight:700}
.ic p{margin:0;font-size:13.5px;line-height:1.95;color:var(--gc-text-low2)}

/* ═══ گام‌های شماره‌دار ═══ */
.nsteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;counter-reset:s}
.ns{position:relative;padding:22px;background:var(--gc-surface);border-radius:var(--r-md);
  box-shadow:inset 0 0 0 1px var(--gc-hairline)}
.ns::before{counter-increment:s;content:counter(s);position:absolute;top:16px;inset-inline-end:18px;
  font-family:var(--font-latin);font-size:34px;font-weight:700;color:var(--gc-tint-2);line-height:1}
.ns h3{margin:0 0 6px;font-size:15px;font-weight:700;padding-inline-end:34px}
.ns p{margin:0;font-size:13.5px;color:var(--gc-text-low2);line-height:1.95}

/* ═══ پرسش‌های پرتکرار — همان قالبِ صفحهٔ گاردین ═══ */
.faq{display:grid;gap:12px;max-width:820px;margin-inline:auto}
.q{background:var(--gc-surface);border-radius:var(--r-md);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--gc-hairline)}
.q summary{cursor:pointer;padding:19px 22px;font-size:15px;font-weight:700;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.q summary::-webkit-details-marker{display:none}
.q summary::after{content:'+';font-family:var(--font-latin);font-size:21px;color:var(--gc-text-low);
  flex:none;transition:transform .2s var(--ease-ui)}
.q[open] summary::after{transform:rotate(45deg)}
.q p{margin:0;padding:0 22px 20px;font-size:14px;color:var(--gc-text-mid);line-height:2.05}
.q p + p{padding-top:0}

/* ═══ کانال‌های ارتباط ═══ */
.chans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
a.chan{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:var(--r-md);
  background:var(--gc-surface);box-shadow:inset 0 0 0 1px var(--gc-hairline);
  transition:background .18s ease,box-shadow .18s ease}
a.chan:hover{background:var(--gc-elevated);box-shadow:inset 0 0 0 1px var(--gc-hairline-strong)}
.chan .ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none;
  background:var(--gc-tint-1);color:var(--gc-text-mid)}
.chan.tg .ico{background:rgba(var(--gc-tg-rgb),.15);color:var(--gc-tg)}
.chan.ig .ico{background:rgba(225,48,108,.15);color:#f0669a}
.chan.yt .ico{background:rgba(255,0,0,.13);color:#ff5c5c}
.chan .t{font-size:14.5px;font-weight:700;margin-bottom:3px}
.chan .d{font-size:13px;color:var(--gc-text-low2);line-height:1.85}
.chan .h{font-size:12.5px;margin-top:5px;color:var(--gc-violet-ink)}

/* ═══ محاسبهٔ هزینهٔ مشاوره ═══ */
.calc{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.opt{margin-bottom:22px}
.opt > .lab{display:block;font-size:13px;font-weight:700;color:var(--gc-text-mid);margin-bottom:10px}
.pills{display:flex;flex-wrap:wrap;gap:9px}
.pill{position:relative}
.pill input{position:absolute;opacity:0;width:0;height:0}
.pill span{display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:11px 16px;border-radius:var(--r-sm);font-size:13.5px;line-height:1.6;
  background:var(--gc-tint-0);color:var(--gc-text-mid);
  box-shadow:inset 0 0 0 1px var(--gc-hairline);transition:all .18s var(--ease-ui)}
.pill span:hover{background:var(--gc-tint-1);color:var(--gc-text)}
.pill input:checked + span{background:rgba(var(--gc-violet-rgb),.18);color:var(--gc-text);
  box-shadow:inset 0 0 0 1.5px var(--gc-violet)}
.pill input:focus-visible + span{outline:2px solid var(--gc-violet-ink);outline-offset:2px}
.pill em{font-style:normal;font-size:12px;color:var(--gc-text-low)}
.pill input:checked + span em{color:var(--gc-violet-ink)}

.sumcard{position:sticky;top:calc(var(--hdr-h) + 20px);background:var(--gc-surface);
  border-radius:var(--r-md);padding:22px;box-shadow:inset 0 0 0 1px var(--gc-hairline)}
.sumcard h3{margin:0 0 14px;font-size:15px;font-weight:700}
.sumrow{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding-block:11px;border-top:1px solid var(--gc-hairline);font-size:13.5px}
.sumrow:first-of-type{border-top:0}
.sumrow .k{color:var(--gc-text-mid)}
.sumrow .v{font-weight:700;white-space:nowrap}
.sumrow.off{display:none}
.sumtot{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-top:14px;
  padding-top:16px;border-top:1px solid var(--gc-hairline-strong)}
.sumtot .k{font-size:14px;font-weight:700}
.sumtot .v{font-size:21px;font-weight:800;color:var(--gc-gold)}
.sumtot .v small{font-size:13px;font-weight:700;margin-inline-start:4px;color:var(--gc-text-mid)}

/* پیامِ رنجِ زیر ۱۰۰ میلیون: در فرمِ زنده دکمهٔ ثبت هم پنهان می‌شود */
.lowband{display:none;margin-top:22px;padding:20px 22px;border-radius:var(--r-md);
  background:var(--gc-surface);box-shadow:inset 0 0 0 1px rgba(var(--gc-cyan-rgb),.3)}
.lowband h3{margin:0 0 8px;font-size:15.5px;font-weight:700;color:var(--gc-cyan)}
.lowband p{margin:0;font-size:13.5px;line-height:2;color:var(--gc-text-mid)}
body.low .lowband{display:block}
body.low .needband{display:none}

/* حالتِ «ثبت شد» */
.done-card{display:none;max-width:640px;margin-inline:auto;background:var(--gc-surface);
  border-radius:var(--r-md);padding:clamp(26px,3vw,38px);text-align:center;
  box-shadow:inset 0 0 0 1px rgba(var(--gc-success-rgb),.3)}
body.sent .done-card{display:block}
body.sent .form-stage{display:none}
.done-card .tick{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  margin:0 auto 16px;background:rgba(var(--gc-success-rgb),.14);color:var(--gc-success-ink)}
.done-card h2{margin:0 0 8px;font-size:21px;font-weight:800}
.done-card > p{margin:0 auto;max-width:44ch;font-size:14px;color:var(--gc-text-mid);line-height:2}
.recap{text-align:start;margin-top:24px;padding-top:6px;border-top:1px solid var(--gc-hairline)}

/* ═══ بلاگ ═══ */
.blog-lead{display:grid;grid-template-columns:1.35fr 1fr;gap:26px;align-items:center;
  background:var(--gc-surface);border-radius:var(--r-md);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--gc-hairline)}
.blog-lead .ph{aspect-ratio:16/9;overflow:hidden;background:var(--gc-elevated)}
.blog-lead .ph img{width:100%;height:100%;object-fit:cover;display:block}
.blog-lead .tx{padding:clamp(20px,3vw,34px)}
.blog-lead h2{margin:12px 0 10px;font-size:clamp(19px,2.2vw,26px);font-weight:800;line-height:1.65}
.blog-lead p{margin:0;font-size:14px;color:var(--gc-text-low2);line-height:2}

.cats{display:flex;flex-wrap:wrap;gap:9px;margin-block:34px 22px}
.cat{padding:8px 15px;border-radius:999px;font-size:13px;color:var(--gc-text-mid);
  background:var(--gc-tint-0);box-shadow:inset 0 0 0 1px var(--gc-hairline);
  transition:background .18s,color .18s;cursor:pointer}
.cat:hover{background:var(--gc-tint-1);color:var(--gc-text)}
.cat.on{background:rgba(var(--gc-violet-rgb),.18);color:var(--gc-text);
  box-shadow:inset 0 0 0 1px rgba(var(--gc-violet-rgb),.45)}
.cat b{font-family:var(--font-latin);font-weight:400;font-size:11.5px;color:var(--gc-text-low);
  margin-inline-start:6px}

.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:22px}
.post{background:var(--gc-surface);border-radius:var(--r-md);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--gc-hairline);display:flex;flex-direction:column;
  transition:transform .2s var(--ease-ui),box-shadow .2s var(--ease-ui)}
.post:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--gc-hairline-strong)}
.post .ph{aspect-ratio:16/9;overflow:hidden;background:var(--gc-elevated)}
.post .ph img{width:100%;height:100%;object-fit:cover;display:block}
.post .tx{padding:16px 18px 20px;display:flex;flex-direction:column;flex:1}
.post h3{margin:0 0 10px;font-size:14.5px;font-weight:700;line-height:1.85}
.post .meta{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:12px;
  color:var(--gc-text-low)}
.tag{font-size:11.5px;padding:4px 10px;border-radius:999px;color:var(--gc-violet-ink);
  background:rgba(var(--gc-violet-rgb),.14);white-space:nowrap}

/* ═══ ریسپانسیو ═══ */
@media (max-width:980px){
  .legal{grid-template-columns:1fr;gap:26px}
  .toc{position:static;background:var(--gc-surface);border-radius:var(--r-md);padding:16px 14px;
    box-shadow:inset 0 0 0 1px var(--gc-hairline)}
  .toc .list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px}
  .calc{grid-template-columns:1fr}
  .sumcard{position:static}
  .blog-lead{grid-template-columns:1fr}
  .blog-lead .ph{order:-1}
}
@media (max-width:560px){
  .prose{font-size:14.5px}
  .nsteps,.icards,.chans{grid-template-columns:1fr}
}

/* ردیفِ کوچکِ «بقیهٔ صفحه‌های حقوقی» ته یک صفحهٔ حقوقی. عمدا لینکِ متنیِ ساده
   است نه کارت: هدفش پیوستگیِ سه‌گانه است، نه جلبِ توجه. */
.legal-more{margin-top:36px;padding-top:18px;border-top:1px solid var(--gc-hairline);
  display:flex;flex-wrap:wrap;gap:20px;font-size:13.5px;font-weight:700}
.legal-more a{color:var(--gc-violet-ink);transition:color .18s ease}
.legal-more a:hover{color:var(--gc-text)}
