/* ── پایه ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
body.blog-body{
  overflow-x:clip;
  overflow-wrap:break-word;
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font); font-size:var(--fs-body); line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}

.section{padding-block:var(--sp-6)}
.section--alt{background:var(--bg-alt)}
@media (min-width:769px){ .section{padding-block:var(--sp-7)} }

/* ── سربرگ بخش: عنوان راست + خط ممتد به چپ ──────────── */
.section-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-4);
  margin-bottom:var(--sp-5)}
.section-head__title{
  font-size:var(--fs-h2);font-weight:800;line-height:var(--lh-tight);
  margin:0;color:var(--gray-8);
}
.section-head__rule{flex:1 1 24px;min-width:24px;height:1px;
  background:var(--border-strong);border:0}
.section-head__more{
  font-size:var(--fs-sm);font-weight:600;color:var(--brand-orange);
  white-space:nowrap;transition:opacity .2s var(--ease)
}
.section-head__more:hover{opacity:.7}

/* ── کارت پایه ────────────────────────────────────────── */
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease);
  height:100%;
}
.card:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}
.card__media{position:relative;overflow:hidden;max-width:100%;background:var(--gray-1)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease)}
.card:hover .card__media img{transform:scale(1.04)}
.card__body{padding:var(--sp-4)}
.card__title{
  font-size:var(--fs-h3);font-weight:700;line-height:var(--lh-tight);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.card__meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);
  font-size:var(--fs-xs);color:var(--text-muted)}
.card__dot{width:3px;height:3px;border-radius:50%;background:var(--gray-3)}

/* برچسب دسته روی تصویر */
.badge{
  position:absolute;inset-block-start:var(--sp-3);inset-inline-start:var(--sp-3);
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);
  color:var(--gray-8);font-size:var(--fs-xs);font-weight:700;
  padding:.28rem .6rem;border-radius:var(--r-pill);
}

/* ── هیرو ─────────────────────────────────────────────── */
.hero{display:grid;gap:var(--sp-4)}
@media (min-width:900px){ .hero{grid-template-columns:56fr 44fr} }

/* کارت شاخص بزرگ — تصویر تمام‌قد با گرادیان و عنوان روی آن */
.card-feature{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:340px;display:block;
  border:1px solid var(--border)}
/* فرزند مستقیم: وگرنه آواتار نویسنده داخل card-feature__meta هم این قانون را
   می‌گیرد و تمام کارت را می‌پوشاند. در پروتوتایپ دیده نمی‌شد چون داده‌ی نمونه
   آواتار نداشت. */
.card-feature > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease)}
.card-feature:hover > img{transform:scale(1.03)}
.card-feature::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,20,23,.88) 0%,rgba(20,20,23,.45) 38%,rgba(20,20,23,0) 68%)}
.card-feature .badge{z-index:2}
.card-feature__body{position:absolute;inset-inline:0;inset-block-end:0;z-index:1;padding:var(--sp-5);color:#fff}
.card-feature__title{font-size:var(--fs-display);font-weight:800;line-height:1.5;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-feature__meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);
  font-size:var(--fs-sm);color:rgba(255,255,255,.82)}
.hero__side{display:grid;gap:var(--sp-4);grid-auto-rows:1fr}

/* ── کارت افقی: تصویر سمت راست، متن کنارش ─────────────── */
.card-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-4);
  align-items:center;padding:var(--sp-3)}
.card-row .card__media{width:88px;height:88px;border-radius:var(--r-md);flex:none}
.card-row .card__title{font-size:var(--fs-body);-webkit-line-clamp:2}
.card-row .card__meta{margin-top:var(--sp-2)}
.card-row--sm .card__media{width:64px;height:64px}
.card-row--sm .card__title{font-size:var(--fs-sm)}

/* ── گریدها ───────────────────────────────────────────── */
.grid{display:grid;gap:var(--sp-4)}
.grid--3{grid-template-columns:1fr}
@media (min-width:600px){ .grid--3{grid-template-columns:repeat(2,1fr)} }
@media (min-width:980px){ .grid--3{grid-template-columns:repeat(3,1fr)} }

/* دسته‌بندی‌ها — مطابق وایرفریم ۳ ستون؛ ردیف ناقص وسط‌چین */
.grid--cat{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-4)}
.grid--cat > *{flex:1 1 260px;max-width:100%}
@media (min-width:980px){ .grid--cat > *{flex:0 1 calc((100% - 2*var(--sp-4))/3)} }

/* کارت دسته‌بندی — تصویر با عنوان شناور روی لبه‌ی پایین */
.card-cat{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;
  aspect-ratio:16/9;border:1px solid var(--border);background:var(--gray-1)}
.card-cat img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease)}
.card-cat:hover img{transform:scale(1.05)}
.card-cat::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,20,23,.72),rgba(20,20,23,0) 58%)}
.card-cat__label{
  position:absolute;inset-block-end:var(--sp-4);inset-inline:var(--sp-4);z-index:1;
  background:rgba(255,255,255,.95);color:var(--gray-8);
  font-weight:700;font-size:var(--fs-sm);text-align:center;
  padding:.5rem .9rem;border-radius:var(--r-pill);box-shadow:var(--shadow-1);
}

/* ── بخش «جدیدترین مطالب»: کارت بزرگ + دو ستون کارت کوچک ─ */
.latest{display:grid;gap:var(--sp-4)}
@media (min-width:980px){ .latest{grid-template-columns:38fr 62fr} }
.latest__list{display:grid;gap:var(--sp-4);grid-template-columns:1fr}
@media (min-width:600px){ .latest__list{grid-template-columns:repeat(2,1fr)} }

/* ── بنر ──────────────────────────────────────────────── */
.banner{display:block;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-1)}
.banner img{width:100%;height:auto}
/* بنرهای تازه‌ی صفحه‌ی اصلی: حاشیه و گوشه‌ی گرد داخل خود تصویر طراحی شده */
.banner--card{border-radius:0;overflow:visible;box-shadow:none}

/* ── دسترسی‌پذیری ─────────────────────────────────────── */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:where(a,button):focus-visible{outline:2px solid var(--brand-orange);outline-offset:2px;border-radius:var(--r-sm)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ══════════════════════════════════════════════════════
   چیدمان دو ستونی — صفحه‌ی نوشته و صفحه‌ی دسته‌بندی
   نسبت ستون‌ها از وایرفریم: محتوا ۴۴۵ / ستون کناری ۲۱۴
   ══════════════════════════════════════════════════════ */
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5);align-items:start}
@media (min-width:980px){ .layout{grid-template-columns:minmax(0,1fr) 300px} }

.sidebar{display:grid;gap:var(--sp-5);align-content:start}
@media (min-width:980px){
  /* --header-h را nav.js منتشر می‌کند و با پنهان شدن هدر صفر می‌شود.
     transition باعث می‌شود ساید بار به‌جای پرش، نرم بالا بیاید. */
  .sidebar{position:sticky;top:calc(var(--header-h, 0px) + var(--sp-4));
    transition:top 400ms var(--ease)}
}
.sidebar__title{font-size:var(--fs-h3);font-weight:800;margin:0 0 var(--sp-3)}
.sidebar__block{display:grid;gap:var(--sp-3)}

/* ── بردکرامب ─────────────────────────────────────────── */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;
  margin:0 0 var(--sp-5);padding:0;list-style:none;
  font-size:var(--fs-sm);color:var(--text-muted)}
.crumbs li{display:flex;align-items:center;gap:.4rem}
.crumbs li+li::before{
  content:"";flex:none;width:6px;height:6px;margin-inline:.15rem;
  /* مقدار فیزیکی عمدی است: نوک فلش باید همیشه به چپ باشد */
  border-left:1.5px solid var(--gray-4);
  border-bottom:1.5px solid var(--gray-4);
  transform:rotate(45deg);
}
.crumbs a:hover{color:var(--brand-orange)}
.crumbs [aria-current]{color:var(--text);font-weight:600}

/* ── سربرگ نوشته ──────────────────────────────────────── */
.entry__title{font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);font-weight:800;
  line-height:1.6;margin:0 0 var(--sp-4)}
.entry__meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-5);padding:0;list-style:none}
.entry__meta li{display:flex;align-items:center;gap:.4rem;
  background:var(--gray-1);border:1px solid var(--border);border-radius:var(--r-pill);
  padding:.4rem .85rem;font-size:var(--fs-xs);color:var(--text-muted)}
.entry__meta b{font-weight:600;color:var(--text)}
.entry__meta b a:hover{color:var(--brand-orange)}
.entry__cover{border-radius:var(--r-lg);overflow:hidden;background:var(--gray-1);
  aspect-ratio:16/9;margin-bottom:var(--sp-5)}
.entry__cover img{width:100%;height:100%;object-fit:cover}

/* ── بدنه‌ی نوشته ─────────────────────────────────────── */
.prose{font-size:1rem;line-height:2.1;color:var(--gray-7)}
.prose > *:first-child{margin-top:0}
.prose h2{font-size:var(--fs-h2);font-weight:800;color:var(--text);
  line-height:1.6;margin:var(--sp-6) 0 var(--sp-3)}
.prose h3{font-size:var(--fs-h3);font-weight:700;color:var(--text);margin:var(--sp-5) 0 var(--sp-2)}
.prose p{margin:0 0 var(--sp-4)}
.prose ul,.prose ol{margin:0 0 var(--sp-4);padding-inline-start:1.4rem}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--brand-orange);text-decoration:underline;text-underline-offset:3px}
.prose img{border-radius:var(--r-md);margin-block:var(--sp-4)}
.prose blockquote{margin:var(--sp-5) 0;padding:var(--sp-4) var(--sp-5);
  border-inline-start:3px solid var(--brand-orange);background:var(--brand-orange-soft);
  border-radius:var(--r-md);color:var(--text)}

/* نکات مهم مقاله */
.keypoints{background:var(--gray-0);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-5)}
.keypoints h2{margin:0 0 var(--sp-3);font-size:var(--fs-h3);font-weight:800}
.keypoints ul{margin:0;padding-inline-start:1.2rem;line-height:2}

/* ── اشتراک‌گذاری ─────────────────────────────────────── */
.share{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;
  padding-block:var(--sp-5);border-block:1px solid var(--border);margin-block:var(--sp-5)}
.share__label{font-size:var(--fs-sm);font-weight:700}
.share ul{display:flex;gap:var(--sp-2);list-style:none;margin:0;padding:0}
.share a{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-pill);
  background:var(--gray-1);color:var(--gray-6);
  transition:background-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}
.share a:hover{background:var(--brand-orange);color:#fff;transform:translateY(-2px)}

/* ── جعبه‌ی نویسنده ───────────────────────────────────── */
.author-box{display:flex;gap:var(--sp-4);align-items:flex-start;
  background:var(--gray-0);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-6)}
.author-box > div{min-width:0}
.author-box__avatar{flex:none;width:72px;height:72px;border-radius:var(--r-pill);
  object-fit:cover;background:var(--gray-2)}
.author-box__name{margin:0 0 .25rem;font-size:var(--fs-h3);font-weight:700;
  overflow-wrap:anywhere}
.author-box__name a{color:inherit;transition:color .2s var(--ease)}
.author-box__name a:hover{color:var(--brand-orange)}
.author-box__role{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--brand-orange);font-weight:600}
.author-box__bio{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.9}

/* ── کارت مقاله در فهرست دسته‌بندی ────────────────────── */
.post-row{display:grid;grid-template-columns:1fr;gap:var(--sp-4);padding:var(--sp-3)}
@media (min-width:600px){ .post-row{grid-template-columns:190px minmax(0,1fr)} }
/* نسبت ۴:۳ و height:100% با هم نمی‌نشینند: وقتی ارتفاع از کارت تعیین
   می‌شود، مرورگر عرض را از نسبت می‌سازد. عنوان دو خطی ردیف را بلندتر
   می‌کند، پس عرض از ۱۹۰ به ~۲۵۳ پیکسل می‌رفت و تصویر از ستون می‌زد بیرون
   و روی متن می‌افتاد. موبایل تک‌ستونی است و همان‌جا نسبت لازم است؛ از
   ۶۰۰ به بالا ستون عرض ثابت دارد و ارتفاع تعیین‌کننده است. */
.post-row .card__media{aspect-ratio:4/3;border-radius:var(--r-md)}
@media (min-width:600px){
  .post-row .card__media{aspect-ratio:auto;height:100%;min-height:142px} }
.post-row__body{padding:var(--sp-2) var(--sp-2) var(--sp-3);
  display:flex;flex-direction:column;gap:var(--sp-2)}
.post-row__title{font-size:var(--fs-h3);font-weight:700;line-height:1.7;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-row__excerpt{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.9;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-row__foot{margin-top:auto;display:flex;align-items:center;gap:var(--sp-2);
  font-size:var(--fs-xs);color:var(--text-muted)}

/* ── سربرگ دسته‌بندی ──────────────────────────────────── */
.term-head{background:var(--gray-0);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-5)}
.term-head__title{margin:0 0 var(--sp-2);font-size:var(--fs-h2);font-weight:800}
.term-head__desc{margin:0;color:var(--text-muted);line-height:2}
.term-head__count{display:inline-block;margin-top:var(--sp-3);font-size:var(--fs-xs);
  color:var(--brand-orange);font-weight:600}

/* ── فهرست دسته‌بندی‌ها در ستون کناری ─────────────────── */
.termlist{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.termlist a{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);
  padding:.7rem var(--sp-4);font-size:var(--fs-sm);font-weight:600;
  transition:border-color .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease)}
.termlist a:hover,.termlist [aria-current] a{border-color:var(--brand-orange);
  background:var(--brand-orange-soft);color:var(--brand-orange)}
.termlist span{font-size:var(--fs-xs);color:var(--text-faint);font-weight:400}

/* ── صفحه‌بندی ────────────────────────────────────────── */
.pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;
  list-style:none;margin:var(--sp-6) 0 0;padding:0}
.pager a,.pager span{display:grid;place-items:center;min-width:40px;height:40px;
  padding-inline:.6rem;border:1px solid var(--border);border-radius:var(--r-md);
  font-size:var(--fs-sm);font-weight:600;background:var(--surface);
  transition:border-color .2s var(--ease),background-color .2s var(--ease)}
.pager a:hover{border-color:var(--brand-orange);color:var(--brand-orange)}
.pager [aria-current]{background:var(--brand-orange);border-color:var(--brand-orange);color:#fff}
.pager .is-disabled{color:var(--text-faint);background:var(--gray-0)}

/* ── کارت عمودی: تصویر بالا، عنوان پایین (مطالب مرتبط) ── */
.card-tile{display:flex;flex-direction:column}
.card-tile .card__media{aspect-ratio:4/3}
.card-tile .card__body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}
.card-tile .card__title{font-size:var(--fs-body);-webkit-line-clamp:2}
.card-tile .card__meta{margin-top:var(--sp-2);font-size:var(--fs-xs)}

/* ══════════════════════════════════════════════════════
   خروجی شورت‌کدهای منتقل‌شده از قالب قدیمی
   این بخش‌ها در پروتوتایپ نبودند، چون پروتوتایپ خروجی
   شورت‌کد نداشت. استایل با همان توکن‌های بالا نوشته شده.
   ══════════════════════════════════════════════════════ */

/* ── بنر متنی ─────────────────────────────────────────
   وقتی برای یک دسته‌بندی تصویر بنر تعریف نشده ولی متن هست. */
.banner--text{display:flex;flex-direction:column;gap:var(--sp-3);
  padding:var(--sp-5);background:var(--brand-blue);color:#fff;text-align:center}
.banner__text{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600}
.banner__button{align-self:center;padding:var(--sp-2) var(--sp-5);
  background:var(--brand-orange);border-radius:var(--r-pill);
  font-size:var(--fs-sm);font-weight:700;white-space:nowrap}

/* ── اسلایدر متخصصین ─────────────────────────────────
   در قالب قدیمی owl.carousel بود؛ اینجا اسکرول افقی بومی
   با scroll-snap، بدون هیچ جاوااسکریپتی. */
.contractors{margin:var(--sp-6) 0}
.contractors__head{display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-4);margin-bottom:var(--sp-4)}
/* از <h2> به <p> تغییر کرد تا فهرست تیترهای مقاله را شلوغ نکند. وقتی <h2>
   بود، `.prose h2` (اختصاصیت بالاتر) اندازه و رنگ و ارتفاع خط را می‌داد؛
   با <p> همان‌ها باید صریح باشند، وگرنه اندازه `--fs-display` و رنگ
   خاکستری متن `.prose` می‌شود. هم‌اندازه‌ی تیترهای h2 مقاله. */
.contractors__title{font-size:var(--fs-h2);font-weight:800;line-height:1.6;color:var(--text);margin:0}
.contractors__all{font-size:var(--fs-sm);color:var(--brand-orange);white-space:nowrap}
.contractors__track{display:flex;gap:var(--sp-4);margin:0;padding:8px 10px 14px;
  list-style:none;overflow-x:auto;scroll-snap-type:x proximity;
  scrollbar-width:none;overscroll-behavior-x:contain}
.contractors__track::-webkit-scrollbar{display:none}
.contractor{flex:0 0 200px;scroll-snap-align:start}
.contractor__link{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);
  padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);height:100%;text-align:center;
  transition:border-color .2s var(--ease)}
.contractor__link:hover{border-color:var(--brand-orange)}
.contractor__avatar{width:72px;height:72px;border-radius:50%;object-fit:cover}
.contractor__name{font-size:var(--fs-body);font-weight:700;color:var(--text)}
.contractor__cities{font-size:var(--fs-xs);color:var(--text-muted)}
.contractor__stats{display:flex;align-items:center;gap:var(--sp-2);
  font-size:var(--fs-xs);color:var(--text-muted);margin-top:auto;padding-top:var(--sp-2)}
.contractor__stars{color:var(--brand-orange);letter-spacing:1px}
.contractor__projects{white-space:nowrap}

/* ── نظرات مشتریان ───────────────────────────────────
   مقادیر از قالب فعلی گرفته شده تا طرح یکی بماند:
   کارت ۲۷۰×۲۱۰ با سایه، خلاصه‌ی سبز، متن سه‌خطی،
   فوتر خاکستری #a1a3a8 و خط اعتماد با آیکن قرمز. */
.testimonials{margin:var(--sp-6) 0}
.testimonials__title{font-size:var(--fs-h2);font-weight:800;line-height:1.6;color:var(--text);
  margin:0 0 var(--sp-4)}
.testimonials__track{display:flex;flex-wrap:nowrap;gap:var(--sp-3);
  margin:0;padding:8px 10px 14px;list-style:none;
  overflow-x:auto;scroll-snap-type:x proximity;
  scrollbar-width:none;overscroll-behavior-x:contain}
.testimonials__track::-webkit-scrollbar{display:none}
.testimonial{flex:0 0 270px;min-height:210px;scroll-snap-align:start;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:12px 16px 16px;background:#fff;border-radius:8px;
  border:1px solid rgb(0 0 0 / 8%);box-shadow:0 1px 6px rgb(0 0 0 / 14%)}
.testimonial__name{margin:0;font-size:1rem;font-weight:800;line-height:2}
.testimonial__summary{display:flex;align-items:center;gap:4px;margin:0;padding-top:5px;
  font-size:.6875rem;font-weight:400;color:green}
.testimonial__summary svg{flex:none;fill:green}
.testimonial__body{margin:8px 0 0;font-size:.75rem;line-height:1.9;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.testimonial__footer{display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  margin-top:12px;font-size:.6875rem;color:#a1a3a8}
.testimonial__decorator a{color:var(--brand-blue);font-weight:600}
.testimonial__city::before{content:'';width:5px;height:5px;border-radius:50%;
  background:#a1a3a8;display:inline-block;margin-inline-end:6px;vertical-align:middle}
.testimonials__note{display:flex;align-items:center;gap:15px;margin:30px 0;
  font-size:.875rem;line-height:1.9;color:gray}
.testimonials__note svg{flex:none;fill:#EF4056}

/* ── فراخوان درون متن (SASACTAS) ─────────────────────── */
.cta-group{display:grid;gap:var(--sp-3);margin:var(--sp-5) 0}
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--sp-3);margin:var(--sp-5) 0;padding:var(--sp-4);
  background:var(--brand-orange-soft);border:1px solid var(--brand-orange-line);
  border-radius:var(--r-lg);box-shadow:inset -3px 0 0 var(--brand-orange)}
.cta__text{margin:0;font-weight:600;font-size:var(--fs-body)}
.cta__button{flex:none;padding:var(--sp-2) var(--sp-5);background:var(--brand-orange);
  color:#fff;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:700}

/* ── پیام «نتیجه‌ای یافت نشد» ─────────────────────────── */
.ss_archive_no_result{padding:var(--sp-6) var(--sp-4);text-align:center;
  background:var(--bg-alt);border-radius:var(--r-lg);color:var(--text-muted)}
.ss_archive_no_result h1{font-size:var(--fs-display);color:var(--text);margin:0 0 var(--sp-3)}

/* ── باکس «پیشنهاد مطالعه»ی درون متن ─────────────────────
   در محتوای قدیمی با استایل inline ذخیره شده بود؛ فیلتر
   inc/content-filters.php آن را به این کلاس تبدیل می‌کند.
   برخلاف نسخه‌ی قدیمی، nowrap ندارد پس روی موبایل نمی‌شکند. */
.read-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);
  margin:var(--sp-5) 0;padding:var(--sp-3) var(--sp-4);
  background:var(--bg-alt);border-inline-start:4px solid var(--brand-orange);
  border-radius:var(--r-sm);font-size:var(--fs-sm)}
.read-suggest__label{color:var(--text-muted);flex:none}
.read-suggest__label::after{content:':';margin-inline-start:2px}
.read-suggest__link a{color:var(--brand-blue);font-weight:700}
.read-suggest__link a:hover{color:var(--brand-orange)}
.read-suggest strong{font-weight:700}

/* ── جدول‌های داخل محتوا ─────────────────────────────────
   قالب قدیمی از بوت‌استرپ ارث می‌برد و این قالب بوت‌استرپ ندارد، پس
   جدول‌ها از صفر استایل می‌گیرند.

   جهت جدول روی هیچ اندازه‌ای عوض نمی‌شود. سربرگ و راه‌راه از کلاس‌هایی
   می‌آیند که salam_prepare_table() سمت سرور می‌گذارد (is-table-head،
   is-alt)، نه از حدس `tr:first-child` که در جدول‌های دارای <thead> اولین
   ردیف داده را هم سربرگ نشان می‌داد.

   ساختار: .table-wrap (ثابت؛ محو لبه و راهنما) > .table-scroll (اسکرول) > table */
.table-wrap{margin:var(--sp-5) 0}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
/* عرض و ارتفاع ثابت ویرایشگر قدیمی (width="612"، style="width: 192.89%;
   height: 749px" و ٪ روی سلول‌ها) کنار گذاشته می‌شود و ستون‌ها از محتوا
   اندازه می‌گیرند. !important چون بخشی‌اش inline است. */
.prose table{width:100%!important;height:auto!important;border-collapse:collapse;
  font-size:var(--fs-sm);line-height:var(--lh-body);background:var(--surface)}
.prose table td,.prose table th{width:auto!important;height:auto!important;padding:var(--sp-3);
  text-align:center;border:1px solid var(--border);vertical-align:middle}
.prose table th,
.prose table thead td,
.prose table tr.is-table-head > td{background:var(--gray-1);font-weight:700;color:var(--text)}
.prose table tr.is-alt > td,
.prose table tr.is-alt > th{background:var(--bg-alt)}
.prose table p{margin:0}
/* تصویر داخل سلول: وسط‌چین، بدون حاشیه‌ی بزرگِ .prose img و با سقف ارتفاع */
.prose table img{display:inline-block;margin:0 auto;max-height:120px;width:auto;
  border-radius:var(--r-sm)}
.prose table a{text-decoration:none}

/* ── جدول روی موبایل: جا شدن، نه چرخیدن ───────────────────
   سنجیده روی هر ۴۸۸ جدول یکتای سایت با فونت و CSS واقعی: مقصر اصلی
   بیرون‌زدگی `white-space:nowrap` روی سربرگ بود (حتی جدول‌های دوستونه)،
   بعد عرض‌های ثابت ویرایشگر قدیمی و فاصله‌ی داخلی زیاد. فونت بر اساس
   تعداد ستون کوچک می‌شود: تا ۴ ستون ۱۳، ۵ و ۶ ستون ۱۲، ۷ به بالا ۱۱ پیکسل. */
@media (max-width:600px){
  .prose table{line-height:1.75}
  .prose table td,.prose table th{padding:var(--sp-2) 6px}

  .prose .table-wrap--dense table{font-size:var(--fs-xs)}
  .prose .table-wrap--dense td,.prose .table-wrap--dense th{padding:6px 4px}
  .prose .table-wrap--denser table{font-size:.6875rem;line-height:1.65}
  .prose .table-wrap--denser td,.prose .table-wrap--denser th{padding:5px 3px}
}

/* ── جدولی که با همه‌ی این‌ها هم جا نشد ────────────────────
   فقط ماتریس‌ها و جدول‌های خیلی پهن. داخل ظرف خودش اسکرول می‌شود و
   tables.js کلاس is-overflowing را می‌گذارد: ستون اول ثابت می‌ماند تا
   معلوم باشد هر ردیف چیست، لبه‌ی پنهان محو می‌شود و راهنما می‌آید.
   بدون جاوااسکریپت جدول باز هم اسکرول می‌شود؛ فقط این‌ها را ندارد. */
.table-wrap.is-overflowing table{border-collapse:separate;border-spacing:0;
  border-block-start:1px solid var(--border);border-inline-start:1px solid var(--border)}
.table-wrap.is-overflowing td,
.table-wrap.is-overflowing th{border-width:0;
  border-block-end:1px solid var(--border);border-inline-end:1px solid var(--border)}
.table-wrap.is-overflowing tr > :first-child{position:sticky;inset-inline-start:0;z-index:1;
  background:var(--surface);box-shadow:-6px 0 8px -6px rgba(0,0,0,.18)}
.table-wrap.is-overflowing tr.is-alt > :first-child{background:var(--bg-alt)}
.table-wrap.is-overflowing thead tr > :first-child,
.table-wrap.is-overflowing tr.is-table-head > :first-child,
.table-wrap.is-overflowing tr > th:first-child{background:var(--gray-1)}
/* لبه‌ی چپ (سمت ستون‌های پنهان در راست‌به‌چپ) محو می‌شود، تا انتهای اسکرول */
.table-wrap.is-overflowing:not(.is-at-end) .table-scroll{
  -webkit-mask-image:linear-gradient(to right,transparent,#000 36px);
          mask-image:linear-gradient(to right,transparent,#000 36px)}
.table-wrap.is-overflowing::after{content:"↔ برای دیدن همه‌ی ستون‌ها، جدول را افقی بکشید";
  display:block;margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);text-align:center}

/* ── سربرگ جدول قیمت تیم محتوا (#new-price-table) ────────────
   مارک‌آپش داخل خود محتواست: عنوان، «آخرین بروزرسانی» و لینک فرم. استایلش
   در styles.css قالب قدیمی مانده بود (خط ۶۲۸۸) و قالب جدید نداشت، پس سه خط
   متن لخت و یک لینک آندرلاین‌دار دیده می‌شد. حالا عیناً همان: کادر طوسی عنوان
   ۷۵٪ و کنارش کادر نارنجی دکمه ۲۵٪، روی موبایل هم کنار هم (کارفرما
   ۱۴۰۵/۰۸/۱۰: طراحی CTAها همان قبلی). متن دکمه را
   salam_price_table_cta_text() عوض می‌کند. */
.prose #new-price-table .header{display:flex;margin-top:var(--sp-5)}
.prose #new-price-table .title{width:75%;padding-right:16px;background:#F4F4F4;border-radius:10px}
.prose #new-price-table .main{padding:7px;font-size:16px;font-weight:700;line-height:1.5}
.prose #new-price-table .update{padding:7px;font-size:11px;line-height:1.5;color:#9C9C9C}
.prose #new-price-table .update span{padding:0 2px;background:#9C9C9C;color:#fff}
.prose #new-price-table .price-table-cta{width:25%;margin-right:5px;padding:8px;
  background:#F67F00;border-radius:10px}
.prose #new-price-table .price-table-cta a{display:block;color:#fff;font-size:18px;font-weight:700;
  line-height:50px;text-align:center;text-decoration:none}
.prose #new-price-table .table-wrap{margin-top:5px}
@media (max-width:720px){ .prose #new-price-table .price-table-cta a{font-size:16px} }
@media (max-width:600px){ .prose #new-price-table .price-table-cta a{line-height:25px} }

/* ── شبکه‌ی مدل‌ها (شورت‌کد salam_models) ────────────────────
   همان کارت‌هایی که سایت اصلی در صفحه‌ی مدل‌ها نشان می‌دهد. */
.models{margin:var(--sp-6) 0}
.models__head{display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-3);margin:0 0 var(--sp-4)}
.models__title{margin:0;font-size:var(--fs-h3);font-weight:800;line-height:1.7;color:var(--text)}
.models__all{flex:none;font-size:var(--fs-sm);color:var(--brand-orange)}
.models__all:hover{text-decoration:underline}

.models__grid{display:grid;gap:var(--sp-4);margin:0;padding:0;list-style:none;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.model{margin:0}
.model__link{display:flex;flex-direction:column;height:100%;overflow:hidden;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  color:inherit;text-decoration:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.model__link:hover{border-color:var(--brand-orange);box-shadow:0 6px 20px rgb(0 0 0 / 8%)}
.model__image{width:100%;aspect-ratio:4/3;object-fit:cover;margin:0;border-radius:0}
.model__body{display:flex;flex-direction:column;gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-4) var(--sp-4);flex:1 1 auto}
.model__title{margin:0;font-size:var(--fs-sm);font-weight:700;line-height:1.9;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.model__meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);
  margin:auto 0 0;font-size:var(--fs-xs);color:var(--text-muted)}
.model__price{font-weight:700;color:var(--text)}
.model__area{flex:none}

/* داخل متن مقاله، سبک‌های .prose را پس می‌گیریم */
.prose .models__grid{margin:0;padding:0;list-style:none}
.prose .models__title{margin:0}
.prose .model__title,
.prose .model__meta{margin:0}
.prose .model__meta{margin-block:auto 0}
.prose .models a{text-decoration:none}
/* هر دو به یک رنگ می‌رسند، ولی `.prose a` اختصاصیت بالاتری دارد و اگر
   روزی رنگ لینک متن عوض شود این هم بی‌خبر با آن می‌رود. */
.prose .models__all{color:var(--brand-orange)}
.prose .model__image{margin:0;border-radius:0}

.author-box__links{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-3) 0 0;
  padding:0;list-style:none;font-size:var(--fs-xs)}
.author-box__links a{color:var(--brand-blue);font-weight:600}
.author-box__links a:hover{color:var(--brand-orange)}

/* ── خنثی‌سازی سبک‌های .prose داخل خروجی شورت‌کدها ─────────
   خروجی شورت‌کدها همیشه داخل .prose می‌نشیند و قوانین
   `.prose a|p|ul|li|img|blockquote` اختصاصیت (0,1,1) دارند،
   پس بر کلاس‌های تک‌بخشی این اجزا (0,1,0) غلبه می‌کنند —
   لینک‌ها آندرلاین می‌گرفتند و متن نظر، پس‌زمینه‌ی blockquote.
   این بلوک با اختصاصیت (0,2,x) آن‌ها را پس می‌گیرد. */

/* ظرف‌های ul */
.prose .contractors__track,
.prose .testimonials__track{margin-inline:-10px;padding:8px 10px 14px;list-style:none}
/* `.prose h2|ol|ul` اختصاصیت (0,1,1) دارند و حاشیه‌ای را که خود جزء
   صفر گذاشته پس می‌گیرند — فاصله‌ی اضافه بالای عنوان اسلایدرها و زیر
   فهرست محتوا. اینجا نیت خود جزء اعمال می‌شود. */
.prose .contractors__title{margin:0}
.prose .testimonials__title{margin:0 0 var(--sp-4)}
.prose .contractors__track,
.prose .testimonials__track{margin-block:0}
.prose .Safiran_comment_goal{margin-inline:-10px}
.prose .contractor,
.prose .testimonial{margin-bottom:0}

/* لینک‌ها: بدون آندرلاین */
.prose .contractors a,
.prose .testimonials a,
.prose .cta a,
.prose .read-suggest a,
.prose .toc a,
.toc a{text-decoration:none}
/* کارت متخصص خودش یک لینک است؛ نشانه‌ی hover کادر نارنجی است،
   نه آندرلاین. آندرلاین فقط برای لینک‌های متنیِ درون خط می‌ماند. */
.prose .testimonials a:hover,
.prose .read-suggest a:hover{text-decoration:underline}
.prose .contractors a:hover{text-decoration:none}
.prose .contractor__link{color:inherit}
.prose .contractors__all{color:var(--brand-orange)}
.prose .testimonial__decorator a{color:var(--brand-blue)}
.prose .cta__button{color:#fff}

/* پاراگراف‌ها */
.prose .testimonial__name,
.prose .testimonial__summary,
.prose .cta__text{margin:0}

/* متن نظر یک <blockquote> است و نباید کادر نقل‌قول مقاله را بگیرد */
.prose .testimonial__body{margin:8px 0 0;padding:0;background:none;border:0;
  border-radius:0;color:var(--text)}
.prose .testimonials__note{margin:30px 0}
.prose .testimonial__summary svg,
.prose .testimonials__note svg{margin:0;border-radius:0}

/* آواتار متخصص: بدون حاشیه‌ی .prose img */
.prose .contractor__avatar{margin:0;border-radius:50%}

/* ── کادر عنوان تصویر (wp-caption) ─────────────────────
   وردپرس روی این div عرض ثابت inline می‌گذارد (مثلاً
   style="width:1210px") که از ستون مقاله بیرون می‌زند.
   استایل inline فقط با !important پس گرفته می‌شود. */
.prose .wp-caption{width:auto!important;max-width:100%!important;margin:var(--sp-5) 0}
.prose .wp-caption img{margin:0}
.prose .wp-caption-text,
.prose figcaption{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);
  color:var(--text-muted);text-align:center;line-height:1.8}
.prose figure{margin:var(--sp-5) 0;max-width:100%}

/* ویدیوی آپارات (salam_lazy_video_embeds) — نسبت ۱۶:۹ پیش از بار شدن
   iframe رزرو می‌شود تا متن زیرش نپرد. */
.prose .video-embed{position:relative;aspect-ratio:16/9;margin:var(--sp-5) 0;
  border-radius:var(--r-md);overflow:hidden;background:var(--gray-1)}
.prose .video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* بنرهای داخل متن (salam_replace_article_banners) — گوشه‌ی گرد و حاشیه در خود
   تصویر طراحی شده؛ گردی و فاصله‌ی `.prose img` نباید رویش بیفتد. */
.prose .article-banner{display:block;margin:var(--sp-5) 0;text-decoration:none}
.prose .article-banner__img{display:block;width:100%;height:auto;margin:0;border-radius:0}

/* ── مارک‌آپ قدیمی نظرات مشتریان ───────────────────────
   نوشته‌هایی که پیش از این رندر شده‌اند، خروجی بازشده‌ی
   شورت‌کد قالب قبلی را داخل متن دارند (کلاس‌های
   Safiran_comment_*) و شورت‌کد جدید رویشان اجرا نمی‌شود.
   همان طرح کارت‌های .testimonial به آن‌ها هم داده می‌شود
   تا بدون دست زدن به محتوا درست دیده شوند. */
.prose .Safiran_comment_subject{font-size:1.25rem;font-weight:800;margin:var(--sp-6) 0 var(--sp-4)}
.prose .Safiran_comment_goal{display:flex;flex-wrap:nowrap;gap:var(--sp-3);
  padding:8px 10px 14px;overflow-x:auto;scroll-snap-type:x proximity;
  scrollbar-width:none;overscroll-behavior-x:contain}
.prose .Safiran_comment_goal::-webkit-scrollbar{display:none}
.prose .Safiran_comment_item{flex:0 0 270px;min-height:210px;scroll-snap-align:start;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:12px 16px 16px;background:#fff;border-radius:8px;
  border:1px solid rgb(0 0 0 / 8%);box-shadow:0 1px 6px rgb(0 0 0 / 14%)}
.prose .Safiran_comment_namefamily{font-size:1rem;font-weight:800;line-height:2}
.prose .Safiran_comment_summary{display:flex;align-items:center;gap:4px;padding-top:5px;
  font-size:.6875rem;color:green}
.prose .Safiran_comment_summary svg{flex:none;fill:green;margin:0;border-radius:0}
.prose .Safiran_comment_summary i{display:flex;align-items:center}
.prose .Safiran_comment_text{padding-inline-start:4px}
.prose .Safiran_comment_comment{margin:8px 0 0;font-size:.75rem;line-height:1.9;
  color:var(--text);display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden}
/* بلوک ساده با فرزندهای inline — مثل قالب اصلی؛ با flex
   عبارت «نام دکوراتور:» به خط بعد می‌افتاد. */
.prose .Safiran_comment_footer{margin-top:12px;font-size:.6875rem;color:#a1a3a8;line-height:2}
.prose .Safiran_comment_footer > div{display:inline!important}
.prose .Safiran_comment_footer a{color:var(--brand-blue);font-weight:600;text-decoration:none}
.prose .Safiran_comment_footer a:hover{text-decoration:underline}
.prose .Safiran_comment_footer svg{margin:0;border-radius:0;vertical-align:middle}
.prose .Safiran_comment_desc{display:flex;align-items:center;gap:15px;margin:30px 0;
  font-size:.875rem;line-height:1.9;color:gray}
.prose .Safiran_comment_desc svg{flex:none;fill:#EF4056;margin:0;border-radius:0}
.prose .Safiran_comment_desc_text{color:gray}

/* ── بقایای بوت‌استرپ در محتوای قدیمی ────────────────────
   خروجی بازشده‌ی اسلایدر نظرات، به ازای هر نظر یک مودال
   بوت‌استرپ هم دارد. در بوت‌استرپ `.modal` پیش‌فرض
   display:none است و فقط با کلیک باز می‌شود؛ این قالب
   بوت‌استرپ ندارد، پس بدون این قانون متن کامل همه‌ی
   مودال‌ها داخل صفحه چاپ می‌شود (۱۲ تا در یک نوشته).
   این‌ها محتوای تکراری‌اند و باید پنهان بمانند. */
.prose .modal{display:none}

/* چند کلاس کمکی که در محتوای قدیمی به کار رفته و قالب
   قبلی از فریم‌ورک می‌گرفت. بدون این‌ها چیدمان آن بخش‌ها
   به هم می‌ریزد. */
.prose .flex{display:flex}
.prose .flex-col{flex-direction:column}
.prose .w-full{width:100%}

/* ── کشیدن ردیف‌های افقی ─────────────────────────────────
   کلاس‌ها را assets/js/drag-scroll.js می‌گذارد: is-draggable
   وقتی محتوا از ظرف پهن‌تر است، is-dragging حین کشیدن. */
.contractors__track.is-draggable,
.testimonials__track.is-draggable,
.Safiran_comment_goal.is-draggable{cursor:grab}
.contractors__track.is-dragging,
.testimonials__track.is-dragging,
.Safiran_comment_goal.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.is-dragging a{pointer-events:none}

/* ── خط اعتماد زیر اسلایدر ───────────────────────────────
   در مارک‌آپ قدیمی آیکن داخل یک <i> است؛ بدون این، متن و
   آیکن از هم فاصله‌ی زیاد می‌گرفتند و به‌هم‌ریخته می‌شد. */
.prose .Safiran_comment_desc{display:flex;align-items:center;justify-content:flex-start;
  gap:10px;margin:30px 0;font-size:.875rem;line-height:1.9;color:gray}
.prose .Safiran_comment_desc > i{flex:none;display:inline-flex;align-items:center}
.prose .Safiran_comment_desc_text{margin:0;flex:1 1 auto}
.testimonials__note{justify-content:flex-start;gap:10px}

/* wpautop خطوط جدیدِ مارک‌آپ قدیمی را به <br> تبدیل کرده و داخل این
   بخش‌ها خط را بی‌دلیل می‌شکند («نام دکوراتور:» از نامِ دکوراتور جدا
   می‌افتاد). این <br>ها محتوای معنادار نیستند. */
.prose .Safiran_comment_footer br,
.prose .Safiran_comment_summary br,
.prose .Safiran_comment_desc br,
.prose .Safiran_comment_item br{display:none}

/* ── فهرست محتوا ─────────────────────────────────────────
   با <details> ساخته شده، پس جمع‌شدن بدون جاوااسکریپت کار
   می‌کند. فلش با وضعیت باز/بسته می‌چرخد. */
.toc{margin:0 0 var(--sp-5);background:var(--bg-alt);
  border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.toc__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);cursor:pointer;list-style:none;
  font-weight:800;font-size:var(--fs-h3);color:var(--text);user-select:none}
.toc__summary::-webkit-details-marker{display:none}
.toc__summary:hover{background:rgb(0 0 0 / 3%)}
.toc__chevron{flex:none;color:var(--text-muted);transition:transform .25s var(--ease)}
.toc[open] .toc__chevron{transform:rotate(180deg)}
.toc__nav{padding:0 var(--sp-5) var(--sp-4)}
.toc__list,.toc__sub{margin:0;padding:0;list-style:none}
.toc__item{margin:0}
.toc__item--h2 > .toc__link{font-weight:600;color:var(--text)}
.toc__link{display:block;padding:6px 0;font-size:var(--fs-sm);line-height:1.9;
  color:var(--text-muted);text-decoration:none}
.toc__link:hover{color:var(--brand-orange)}
/* شماره‌گذاری خودکار عمداً نیست: بسیاری از تیترهای این بلاگ خودشان با
   «۱.» و «۲.» شروع می‌شوند و شمارنده عدد دومی کنارش می‌گذاشت. */
.toc__sub{padding-inline-start:var(--sp-4);border-inline-start:1px solid var(--border);
  margin-inline-start:6px}
.toc__sub .toc__link{font-size:var(--fs-xs)}
/* تیترها زیر هدر چسبان پنهان نشوند وقتی از فهرست پرش می‌کنیم */
.prose h2[id],.prose h3[id]{scroll-margin-top:calc(var(--header-h, 0px) + var(--sp-5))}

/* ── دیدگاه‌ها ────────────────────────────────────────────
   جای «مطالب مرتبط» پایین مقاله. */
.comments{margin-top:var(--sp-7)}
.comment-list{margin:0 0 var(--sp-6);padding:0;list-style:none;display:grid;gap:var(--sp-4)}
.comment-list .children{margin:var(--sp-4) 0 0;padding-inline-start:var(--sp-5);
  border-inline-start:2px solid var(--border);list-style:none;display:grid;gap:var(--sp-4)}
.comment-item__body{padding:var(--sp-4);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-lg)}
.comment-item__head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.comment-item__avatar{width:48px;height:48px;border-radius:var(--r-pill);flex:none;object-fit:cover}
.comment-item__author{margin:0;font-weight:700;font-size:var(--fs-body)}
.comment-item__date{font-size:var(--fs-xs);color:var(--text-muted)}
.comment-item__pending{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--brand-orange)}
.comment-item__text{font-size:var(--fs-sm);line-height:2;color:var(--text)}
.comment-item__text p{margin:0 0 var(--sp-3)}
.comment-item__text p:last-child{margin-bottom:0}
.comment-item__foot{margin-top:var(--sp-3);font-size:var(--fs-xs)}
.comment-item__foot a{color:var(--brand-blue);font-weight:600;text-decoration:none}
.comment-item__foot a:hover{text-decoration:underline}
.comments__closed{padding:var(--sp-4);background:var(--bg-alt);border-radius:var(--r-md);
  font-size:var(--fs-sm);color:var(--text-muted)}

/* فرم دیدگاه */
.comment-form{display:grid;gap:var(--sp-3);margin-top:var(--sp-5)}
.comment-form .comment-reply-title{font-size:var(--fs-h3);font-weight:800;margin:0}
.comment-notes{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}
.comment-form label{display:block;margin-bottom:6px;font-size:var(--fs-sm);font-weight:600}
.comment-form input[type=text],.comment-form input[type=email],
.comment-form input[type=url],.comment-form textarea{
  width:100%;padding:var(--sp-3);font:inherit;font-size:var(--fs-sm);color:var(--text);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}
.comment-form textarea{resize:vertical;min-height:120px}
.comment-form input:focus,.comment-form textarea:focus{outline:2px solid var(--brand-orange);
  outline-offset:1px;border-color:transparent}
.comment-form .submit{justify-self:start;padding:var(--sp-3) var(--sp-6);
  background:var(--brand-orange);color:#fff;border:0;border-radius:var(--r-pill);
  font:inherit;font-weight:700;cursor:pointer}
.comment-form .submit:hover{background:var(--brand-orange-strong)}
@media (min-width:600px){
  .comment-form-author,.comment-form-email{display:inline-block;width:calc(50% - var(--sp-2));
    vertical-align:top}
}

/* پوشش‌های سمنتیک — ساختار می‌دهند، نه ظاهر */
.entry__header{margin:0}
.post-row-wrap{display:block}          /* <article> دور هر ردیف آرشیو */
.toc__label{display:block}
.comment-form-comment{margin:0}

/* ── فرم جست‌وجو ─────────────────────────────────────────
   بدون searchform.php وردپرس فرم خام خودش را می‌ساخت که
   هیچ کلاسی از قالب نداشت و با استایل پیش‌فرض مرورگر
   رندر می‌شد. */
.search-form{width:100%;max-width:520px;margin-inline:auto}
.search-form__field{display:flex;align-items:center;gap:var(--sp-2);
  padding:6px 6px 6px var(--sp-4);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-pill);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.search-form__field:focus-within{border-color:var(--brand-orange);
  box-shadow:0 0 0 3px rgb(245 127 34 / 15%)}
.search-form__icon{flex:none;color:var(--text-faint)}
.search-form__input{flex:1 1 auto;min-width:0;border:0;background:none;
  font:inherit;font-size:var(--fs-sm);color:var(--text);padding:var(--sp-2) 0}
.search-form__input:focus{outline:none}
.search-form__input::placeholder{color:var(--text-faint)}
.search-form__submit{flex:none;padding:var(--sp-2) var(--sp-5);border:0;
  background:var(--brand-orange);color:#fff;border-radius:var(--r-pill);
  font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer;
  transition:background .2s var(--ease)}
.search-form__submit:hover{background:var(--brand-orange-strong)}

/* ── صفحه‌ی پیدا نشد ─────────────────────────────────────
   سه راه خروج می‌دهد: جست‌وجو، دسته‌بندی، تازه‌ترین‌ها. */
.notfound{text-align:center;padding:var(--sp-8) var(--sp-4);
  background:var(--bg-alt);border-radius:var(--r-xl);margin-bottom:var(--sp-7)}
.notfound__code{margin:0;font-size:clamp(3.5rem,12vw,6rem);
  font-weight:800;line-height:1;color:var(--brand-orange);opacity:.18;letter-spacing:.05em;margin-bottom:var(--sp-2)}
.notfound__title{margin:0 0 var(--sp-3);
  font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);
  font-weight:800;color:var(--text)}
.notfound__text{max-width:52ch;margin:0 auto var(--sp-5);font-size:var(--fs-sm);
  line-height:2;color:var(--text-muted)}
.notfound__search{margin-bottom:var(--sp-5)}
.notfound__cats{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}
.chip{display:inline-block;padding:6px var(--sp-4);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-pill);
  font-size:var(--fs-xs);color:var(--text);text-decoration:none;
  transition:border-color .2s var(--ease),color .2s var(--ease)}
.chip:hover{border-color:var(--brand-orange);color:var(--brand-orange)}
.notfound__recent{margin-top:var(--sp-6)}

/* نسخه‌ی درون‌صفحه‌ای برای «نتیجه‌ای یافت نشد» جست‌وجو */
.notfound--inline{padding:var(--sp-6) var(--sp-4);margin-bottom:var(--sp-5)}
.notfound--inline .notfound__title{margin-top:0;font-size:var(--fs-h3)}

/* ── نوار فراخوان چسبان پایین ─────────────────────────────
   طراحی ss_fixed_div قالب قدیمی (styles.css خط ۳۹۰۹، کارفرما ۱۴۰۵/۰۸/۱۰):
   گرادیان سرمه‌ای، گوشه‌ی ۱۶ بالا، دکمه‌ی سفید تا ۷۶۹ و نارنجی زیر آن.
   فقط زیر ۹۸۰ پیکسل، مثل ۱.۳۲.۱۴: روی دسکتاپ بنر ستون کناری همیشه دیده می‌شود.
   قالب قدیمی نوار را روی دسکتاپ هم داشت؛ ۱.۳۲.۱۸ همان را برگرداند و کارفرما
   ۱۴۰۵/۰۸/۱۰ خواست روی دسکتاپ نباشد (۱.۳۲.۱۹).
   متن دسکتاپ IranSans-Medium بود؛ وزن ۵۰۰ از ۱.۳۲.۱۰ نیست و ۶۰۰ جایش است.
   جاگیر هم‌قد نوار است تا انتهای فوتر زیرش نماند. */
.sticky-cta{position:fixed;inset-inline:0;bottom:0;z-index:90;border-radius:16px 16px 0 0;
  background:linear-gradient(270deg,rgb(1 48 162 / 90%) 0%,rgb(1 27 88 / 90%) 100%);
  -webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}
.sticky-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  max-width:var(--container);margin-inline:auto;padding:16px 24px}
.sticky-cta__text{margin:0;color:#fff;font-size:20px;font-weight:600;line-height:30px}
.sticky-cta__button{flex:none;padding:8px;background:#fff;color:#0130A2;border-radius:8px;
  font-size:18px;line-height:30px;text-decoration:none;white-space:nowrap}
.sticky-cta-spacer{height:78px}
@media (min-width:980px){ .sticky-cta,.sticky-cta-spacer{display:none} }
@media (max-width:768px){
  .sticky-cta__text{font-size:14px;font-weight:400;line-height:21px}
  .sticky-cta__button{background:#F67F00;color:#fff;font-size:14px;line-height:16px}
  .sticky-cta-spacer{height:64px}
}

/* ── دکمه‌ی شناور بازگشت به بالا ──────────────────────────
   کلاس is-visible را assets/js/nav.js بعد از یک صفحه اسکرول می‌دهد. */
.to-top{position:fixed;inset-inline-end:var(--sp-4);bottom:var(--sp-5);z-index:91;
  display:grid;place-items:center;width:44px;height:44px;
  background:var(--brand-orange);color:#fff;border-radius:var(--r-md);
  box-shadow:0 2px 12px rgb(0 0 0 / 20%);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.to-top.is-visible{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--brand-orange-strong)}
/* وقتی نوار چسبان هست، دکمه بالاتر می‌نشیند تا رویش نیفتد */
@media (max-width:979px){ .to-top--above-cta{bottom:calc(78px + var(--sp-5))} }
@media (max-width:768px){ .to-top--above-cta{bottom:calc(64px + var(--sp-5))} }

/* ── دکمه‌ی چسبان شریک (شاخه‌ی stickyPopupSanjagh قالب قدیمی) ──
   طراحی btn2sanjagh قدیمی (styles.css خط ۵۰۴۵): سرمه‌ای، گوشه‌ی ۱۶، مربع
   آبی «+» در راست، از لبه‌ی راست با همان منحنی کشسان وارد می‌شود. یک تفاوت
   عمدی: قدیمی bottom:36px بود و نیمه‌اش زیر نوار چسبان (z-index بالاتر) گم
   می‌شد؛ اینجا وقتی نوار هست بالای آن می‌نشیند. */
.partner-cta{position:fixed;right:33px;bottom:36px;z-index:91;
  display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:center;
  max-width:calc(100vw - 66px);padding:12px;background:#0130A2;color:#fff;border-radius:16px;
  font-size:18px;line-height:27px;text-decoration:none;
  visibility:hidden;transform:translateX(calc(100% + 33px));
  transition:transform .3s cubic-bezier(.08,1.09,.32,1.275),visibility .3s}
.partner-cta.is-visible{visibility:visible;transform:none}
.partner-cta:hover{color:#fff}
.partner-cta__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.partner-cta__plus{flex:none;width:30px;height:30px;margin-left:10px;
  background:#008ECC;border-radius:5px;font-size:24px;line-height:33px;text-align:center}
@media (max-width:979px){ .partner-cta--above-cta{bottom:calc(78px + 16px)} }
@media (max-width:768px){ .partner-cta--above-cta{bottom:calc(64px + 16px)} }

/* ── نشان دایره‌ای روی تصاویر مقاله ──────────────────────────
   assets/js/image-cta.js (و اسکریپت قدیمی کادر هدر چند نوشته) هر تصویر
   `wp-image-*` را در `.img-template` می‌پیچد و سه دایره کنارش می‌سازد:
   ذره‌بین (چپ) و «سفارش این کابینت» (راست).

   ابعاد و جای دقیق از همان فایل قدیمی برداشته شده (خط ۴۸۱۵ به بعد).
   دایره ۸۰px است ولی ظرفش ۵۰px با overflow:hidden، پس فقط یک‌چهارمش
   در گوشه‌ی تصویر دیده می‌شود.

   دو آیکن SVG درون‌خطی بودند و جایشان به ارتفاع خط متن بستگی داشت؛ با خط
   بلندتر قالب جدید ذره‌بین ۷ پیکسل بالا رفت و به لبه‌ی دایره چسبید و دست
   روی «کابینت» افتاد (کارفرما ۱۴۰۵/۰۸/۱۰). حالا بلوکی‌اند و جایشان عدد ثابتی
   است که با رندر CSS قدیمی سنجیده شد: ذره‌بین ۱۱ پیکسل بالای لبه‌ی پایین
   تصویر، دست ۵ پیکسل بیرون از آن، مثل قبل. نارنجی دایره هم #F67F00 قدیمی.

   تصویر معمولاً داخل لینک است، پس `.prose a` رنگ نارنجی و آندرلاین را
   روی متن نشان می‌نشاند؛ اینجا پس گرفته می‌شود. */
.prose .img-template{position:relative;display:inline-block;max-width:100%}
.prose .img-template img{margin:0}

/* گوشه‌ی بیرونی ظرف هم‌اندازه‌ی گوشه‌ی گرد تصویر (`.prose img`)، وگرنه تکه‌ای از
   دایره بیرون از گوشه‌ی تصویر می‌ماند؛ تصاویر قالب قدیمی گوشه‌ی تیز داشتند. */
.prose .img-template .circle-elements{position:absolute;bottom:0;left:0;z-index:3;
  width:50px;height:50px;overflow:hidden;border-bottom-left-radius:var(--r-md)}
.prose .img-template .circle-elements.zeroRight{right:0;left:auto;
  border-bottom-left-radius:0;border-bottom-right-radius:var(--r-md)}

.prose .img-template .click-for-zoom{position:absolute;bottom:-40px;left:-32px;
  width:80px;height:80px;border-radius:50%;background:rgb(58 58 58 / 40%)}
.prose .img-template .zoom-svg{position:absolute;top:11px;right:20px}
.prose .img-template .zoom-svg svg,
.prose .img-template .cta-svg svg{display:block}

.prose .img-template .click-for-cta{position:absolute;bottom:-40px;right:-32px;
  width:80px;height:80px;border-radius:50%;background:#F67F00}
.prose .img-template .click-for-cta .cta-content{position:absolute;top:10px;left:8px;z-index:0;
  display:flex;flex-direction:column;align-items:flex-start;width:38px}
.prose .img-template .click-for-cta .cta-content p{margin:0;color:#fff;
  font-size:7px;font-weight:700;line-height:12px;text-decoration:none}
.prose .img-template .click-for-cta .cta-content p:last-child{align-self:flex-end;font-size:8px}

.prose .img-template .cta-svg{position:absolute;bottom:-5px;right:2px;z-index:4;overflow:visible}
.prose .img-template a,
.prose .img-template a:hover{color:#fff;text-decoration:none}

/* ── فراخوان درون متن (خودکار بر اساس برچسب) ──────────────
   جایگزین کادر ss_suggest_box قالب قدیمی. */
.inline-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--sp-3);margin:var(--sp-5) 0;padding:var(--sp-4) var(--sp-5);
  background:var(--brand-orange-soft);border:1px solid var(--brand-orange-line);
  border-radius:var(--r-lg);
  /* نوار لهجه در لبه‌ی آغازین. با border ضخیم، گوشه‌های گرد ناهموار
     می‌شدند؛ سایه‌ی داخلی تمیز می‌نشیند. سایت RTL است، پس منفی یعنی راست. */
  box-shadow:inset -3px 0 0 var(--brand-orange)}
.inline-cta__text{flex:1 1 220px;margin:0;font-size:var(--fs-sm);font-weight:700;
  line-height:1.9;color:var(--text)}
.inline-cta__button{flex:none;padding:var(--sp-3) var(--sp-6);background:var(--brand-orange);
  color:#fff;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:700;
  text-decoration:none;white-space:nowrap;transition:background .2s var(--ease)}
.inline-cta__button:hover{background:var(--brand-orange-strong)}
/* `.prose a` اختصاصیت (0,1,1) دارد و رنگ نارنجی‌اش را روی دکمه می‌نشاند —
   نارنجی روی نارنجی، یعنی متن دکمه نامرئی. همان خنثی‌سازی‌ای که
   `.cta__button` دارد، اینجا هم لازم است. */
.prose .inline-cta a{color:#fff;text-decoration:none}
.prose .inline-cta a:hover{color:#fff}
.prose .inline-cta__text{margin:0;color:var(--text)}

/* ── پاپ‌آپ نوشته ─────────────────────────────────────────
   با <dialog>: لایه‌ی پس‌زمینه و بستن با Esc کار مرورگر است. ظاهر عیناً
   مودال بوت‌استرپ قالب قدیمی (#customModal و popup-style.css، کارفرما
   ۱۴۰۵/۰۸/۱۰): عرض ۹۰٪ از min(500, صفحه − ۱۶)، گوشه‌ی ۸، لبه‌ی کم‌رنگ، طرح
   لوگو در راست، ضربدر و دکمه در چپ، متن راست‌چین. لایه‌ی پشت دو لایه بود
   (بک‌دراپ سیاه ۵۰٪ و پس‌زمینه‌ی مودال ۲۰٪ با blur)، یعنی روی هم ۶۰٪.
   متن دوم IranSans-Medium بود؛ وزن ۵۰۰ نیست و ۶۰۰ جایش است. */
.popup{position:fixed;width:calc(min(500px,100vw - 16px) * .9);max-width:none;max-height:calc(100dvh - 16px);
  padding:24px;overflow:hidden auto;border:1px solid rgb(0 0 0 / 17.6%);border-radius:8px;
  background:#fff;color:#212529}
.popup::backdrop{background:rgb(0 0 0 / 60%);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}
.popup[open]{animation:salam-popup-in .3s ease-out}
@keyframes salam-popup-in{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .popup[open]{animation:none} }
/* فوکوس اولیه روی خود پنجره است (nav.js)، نه روی ضربدر؛ کادرش لازم نیست */
.popup:focus{outline:none}
.popup__logo{position:absolute;top:35px;right:0;width:105px;height:auto;pointer-events:none}
.popup__main{position:relative}
.popup__dismiss{display:flex;justify-content:flex-end;margin:0}
.popup__close{display:block;width:24px;height:24px;padding:0;background:none;border:0;color:#000;cursor:pointer}
.popup__close svg{display:block}
.popup__body{padding:16px 0 0;text-align:right}
.popup__title{margin:0 0 16px;font-size:20px;font-weight:700;line-height:30px}
/* پاراگراف‌های قدیمی ۱۸ پیکسلی بودند با span ۱۶ پیکسلی؛ هر خط ۲۷ جا می‌گرفت */
.popup__text{margin:0 0 16px;font-size:16px;font-weight:600;line-height:27px}
/* فاصله‌ی متن تا دکمه: ۱۶ حاشیه‌ی پاراگراف + ۱۶ پدینگ بدنه + ۴ حاشیه‌ی فوتر */
.popup__button{display:block;width:fit-content;margin:36px 4px 4px;margin-inline-start:auto;
  padding:8px;border:1px solid transparent;border-radius:8px;background:#F67F00;color:#fff;
  font-size:18px;font-weight:400;line-height:22px;text-align:center;text-decoration:none}
.popup__button:hover{color:#fff}
.popup__skip-form{display:none}

/* نوع modern: فرم و عکس در دو ستون (#exampleModalCenter و popupForm-*، خط
   ۶۶۳۲ به بعد). پنجره تا ۸۷۵، گوشه‌ی ۱۵؛ ستون فرم ۵۲٪ با پدینگ ۵۰/۷۵، عکس
   ۴۸٪. تا ۷۶۸ عکس بالای فرم، تا ۵۲۰ عکس نیست و «رد کردن» زیر فرم می‌آید. */
.popup--form{display:flex;width:calc(min(875px,100vw - 40px));padding:0;border-radius:15px;overflow:hidden auto}
.popup--form:not([open]){display:none}
.popup--form:not(.popup--has-pic){width:calc(min(500px,100vw - 40px))}
.popup--form .popup__main{flex:1 1 52%;width:52%;padding:50px 75px}
.popup--form:not(.popup--has-pic) .popup__main{width:100%;padding:50px 48px}
.popup__pic{flex:1 1 48%;width:48%;background-position:center;background-size:cover}
.popup--form .popup__dismiss{position:absolute;top:5px;right:20px}
.popup--form .popup__close{width:auto;height:auto;padding:1px 6px;color:rgb(0 0 0 / 31%);font-size:2.5rem;font-weight:300;line-height:1.5}
.popup--form .popup__body{padding:0}
.popup--form .popup__title{margin:0;color:#F57F22;font-size:22px;font-weight:700;line-height:1.5}
.popup--form .popup__text{margin:5px 0 15px;color:#4B4B4B;font-size:12px;font-weight:400;line-height:1.5}
@media (max-width:768px){
  .popup--form{flex-direction:column-reverse}
  .popup--form .popup__main{width:100%;padding:10px 28px 30px}
  .popup__pic{flex:none;width:100%;height:290px}
}
@media (max-width:520px){
  .popup--form,.popup--form:not(.popup--has-pic){width:calc(min(380px,100vw - 24px))}
  .popup--form .popup__main{padding:16px 18px 8px}
  .popup__pic{display:none}
  .popup--form .popup__dismiss{display:none}
  .popup--form .popup__skip-form{display:block;text-align:center}
  .popup__skip{margin:12px auto;padding:5px 12px;background:none;border:0;border-radius:8px;
    color:#F57F22;font:inherit;font-size:16px;line-height:24px;cursor:pointer}
}

/* ── فرم پاپ‌آپ modern ──────────────────────────────────────
   جای دکمه را می‌گیرد؛ چهار فیلد قالب قدیمی. */
.lead-form{margin:0;text-align:start}
.lead-form__row{display:flex;flex-direction:column;gap:var(--sp-2);margin:0 0 var(--sp-4)}
.lead-form__row label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}
.lead-form input,.lead-form select{width:100%;padding:var(--sp-3);
  background:var(--surface);color:var(--text);
  border:1px solid var(--border);border-radius:var(--r-md);
  font:inherit;font-size:var(--fs-sm)}
.lead-form input:focus-visible,.lead-form select:focus-visible{
  outline:2px solid var(--brand-orange);outline-offset:1px;border-color:var(--brand-orange)}
.lead-form select:disabled{background:var(--bg-alt);color:var(--text-faint);cursor:not-allowed}
.lead-form input.has-error{border-color:#d33}
.lead-form__error{font-size:var(--fs-xs);color:#d33}
.lead-form__submit{width:100%;border:0;font:inherit;font-weight:700;cursor:pointer}
.lead-form__status{margin:var(--sp-3) 0 0;font-size:var(--fs-xs);
  line-height:1.8;color:var(--text-muted);text-align:center}
.lead-form__status.is-error{color:#d33}

/* همان فرم داخل پاپ‌آپ modern، با ظاهر فرم قدیمی (popupForm-form): برچسب ۱۲
   خاکستری، فیلد ۵۰ با گوشه‌ی ۱۰، فوکوس نارنجی با سایه، دکمه‌ی ۴۲ نارنجی Bold.
   پیام ثبت موفق سبز و وسط‌چین با تیک، مثل #tanks-for-mainModal. */
.popup--form .lead-form{text-align:right}
.popup--form .lead-form__row{gap:0;margin:0 0 10px}
/* برچسب inline-block قدیمی در خطی ۲۷ پیکسلی می‌نشست (بدنه‌ی ۱۸ × ۱.۵) */
.popup--form .lead-form__row label{font-size:12px;font-weight:400;line-height:27px;color:#707070}
.popup--form .lead-form input,.popup--form .lead-form select{height:50px;padding:6px 12px;
  border:1px solid #CED4DA;border-radius:10px;background:#fff;color:#212529;font-size:16px}
.popup--form .lead-form select{margin-block:4px;color:#838383}
.popup--form .lead-form input[type=tel]{letter-spacing:2px;text-align:center}
.popup--form .lead-form input::placeholder{color:#D0D5DD}
.popup--form .lead-form input:focus-visible,.popup--form .lead-form select:focus-visible{
  outline:0;border-color:#F57F22;box-shadow:0 0 0 .2rem rgb(245 127 34 / 25%)}
.popup--form .lead-form input.has-error{border:3px solid red}
.popup--form .lead-form__error{font-size:10px;color:red}
.popup--form .lead-form__submit{display:block;width:100%;height:42px;margin:0;padding:0 12px;
  border:0;border-radius:10px;background:#F57F22;color:#fff;font-size:16px;font-weight:700;line-height:42px}
/* بعد از ثبت، مثل #tanks-for-mainModal فقط پیام می‌ماند */
.popup--form:has(.lead-form.is-done) :is(.popup__title,.popup__text,.popup__skip-form){display:none}
/* جای پیام خالی فاصله نگیرد؛ فرم قدیمی چنین سطری نداشت */
.popup--form .lead-form__status:empty{margin:0}
.popup--form .lead-form.is-done .lead-form__status{margin:0;padding:72px 0 40px;color:#156923;
  font-size:20px;line-height:1.6;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23008516' d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z'/%3E%3C/svg%3E") center 12px/40px no-repeat}

/* ── سوالات متداول زیر متن نوشته (۱.۳۲.۱۱) ─────────────────
   همان بخش قالب قدیمی (inc/faq.php): سوال‌های خود نوشته، یا هشت سوال ثابت.
   <details> بی‌اسکریپت باز و بسته می‌شود و با صفحه‌کلید هم کار می‌کند. */
.faq{margin-block:var(--sp-6) var(--sp-5)}
.faq__title{margin:0 0 var(--sp-4);font-size:var(--fs-h2);font-weight:800;text-align:center}
.faq__title span{color:var(--brand-orange)}
.faq__item{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);
  margin-bottom:var(--sp-3);transition:border-color .2s var(--ease),background-color .2s var(--ease)}
.faq__item[open]{border-color:var(--brand-orange-line);background:var(--gray-0)}
.faq__question{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:var(--sp-4);font-weight:700;line-height:1.8;cursor:pointer;list-style:none}
.faq__question::-webkit-details-marker{display:none}
.faq__question::after{content:"";flex:none;width:14px;height:14px;background:currentColor;
  -webkit-mask:var(--chevron-down) center/contain no-repeat;mask:var(--chevron-down) center/contain no-repeat;
  transition:transform .2s var(--ease)}
.faq__item[open] .faq__question::after{transform:rotate(180deg)}
.faq__question:focus-visible{outline:2px solid var(--brand-orange);outline-offset:2px;border-radius:var(--r-md)}
.faq__answer{padding:0 var(--sp-4) var(--sp-4);line-height:2}
.faq__answer p{margin:0 0 var(--sp-2)}
.faq__answer p:last-child{margin-bottom:0}
.faq__answer ul{margin:var(--sp-2) 0;padding-inline-start:1.2rem}
.faq__answer a{color:var(--brand-orange);font-weight:700}

/* ── پنجره‌ی بزرگ‌نمایی تصویر مقاله (۱.۳۲.۱۱) ───────────────
   باز و بسته کردنش با اسکریپت کادر هدر خود نوشته است
   (template-parts/content/image-modal.php)؛ شناسه‌ها همان قالب قدیمی‌اند. */
.images-modal{position:fixed;inset:0;z-index:1000;overflow:auto;background:rgb(0 0 0 / 88%)}
.images-modal__inner{min-height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:var(--sp-5);padding:var(--sp-6) var(--sp-4)}
#Wp_Img_Modal_Content_Container{width:100%;max-width:900px;display:flex;justify-content:center}
#Wp_Img_Modal_Content{display:block;max-width:100%;max-height:68vh;width:auto;height:auto;
  border-radius:var(--r-md);animation:salam-modal-zoom .3s var(--ease)}
@keyframes salam-modal-zoom{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
#Wp_Img_Modal_CTA{width:100%;display:flex;justify-content:center}
.Wp_Img_Modal_CTA_link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:var(--sp-2) var(--sp-6);background:var(--brand-orange);color:#fff;border-radius:var(--r-pill);
  font-size:var(--fs-sm);text-decoration:none;box-shadow:var(--shadow-2)}
.Wp_Img_Modal_CTA_link:hover,.Wp_Img_Modal_CTA_link:focus-visible{background:var(--brand-orange-strong);color:#fff}
.Wp_Img_Modal_CTA_link strong{font-weight:800;margin-inline:.25em}
.images-modal-closeBtn{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-pill);
  background:rgb(255 255 255 / 14%);color:#fff;cursor:pointer}
.images-modal-closeBtn:hover,.images-modal-closeBtn:focus-visible{background:rgb(255 255 255 / 26%);outline:none}
@media (prefers-reduced-motion:reduce){ #Wp_Img_Modal_Content{animation:none} }

/* ── فرم «ما درخدمتیم» بعد از نظرات (۱.۳۲.۱۱) ─────────────────
   همان جا و همان فیلدهای فرم قالب قدیمی (salam_render_request_form): نوع خدمات،
   نام خانوادگی، شماره تماس، استان، شهر. برچسب‌ها پنهان‌اند و متن راهنما داخل
   فیلد است، مثل قبل. روی دسکتاپ دو ردیف سه‌تایی، روی موبایل یک ستون. */
.request-form{background:var(--gray-0);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--sp-5);margin-block:var(--sp-6)}
.request-form__lead{margin:0 0 var(--sp-4);line-height:1.9}
.request-form__lead strong{color:var(--brand-orange);font-weight:800}
.lead-form--compact{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
.lead-form--compact .lead-form__row{margin:0}
.lead-form--compact .lead-form__submit{align-self:stretch}
.lead-form--compact .lead-form__status{grid-column:1 / -1;margin:0}
.lead-form--compact .lead-form__status:empty{display:none}
/* فیلد شماره چپ‌به‌راست است؛ متن راهنمای فارسی‌اش تا وقتی خالی است راست‌چین بماند */
.lead-form--compact input[type=tel]:placeholder-shown{direction:rtl}
@media (min-width:640px){ .lead-form--compact{grid-template-columns:repeat(3,minmax(0,1fr))} }
