/* ووموو — قواعد پایه */
/* توکن‌ها در tokens.css. این فایل بعد از آن بارگذاری می‌شود. */
/* هیچ مقدار رنگ، فاصله یا شعاعی مستقیم نوشته نمی‌شود — فقط var(--...) */

*{box-sizing:border-box}

html,body{direction:rtl}

/* هیچ عنصری نباید صفحه را به پهلو بکشد.
   یک نوار سرریز روی موبایل فقط «کمی بریدگی» نیست: کل سند به
   پهلو می‌رود و عناصرِ ثابتِ هدر — از جمله دکمه‌ی منو — از کادر
   بیرون می‌افتند و دیگر قابل لمس نیستند.
   clip نه hidden: hidden روی body یک زمینه‌ی اسکرول تازه می‌سازد
   و position:sticky داخلش از کار می‌افتد. */
body{overflow-x:clip}

body{
  background:var(--page);
  color:var(--ink);
  font-family:var(--fa);
  font-weight:400;
  font-size:var(--fs-body);
  line-height:1.7;
}

/* تیترها — هر سه وزن ۵۰۰ */
h1,h2,h3{font-weight:500}
h1{font-size:var(--fs-title);line-height:1.1;letter-spacing:-.01em}
h2{font-size:var(--fs-card);line-height:1.15;letter-spacing:-.01em}
h3{font-size:var(--fs-body)}

/* تیتر غول — صفحه اصلی */
.giant{font-size:var(--fs-giant);font-weight:500;line-height:1.22;letter-spacing:-.01em}

/* برچسب فنی — کد سیستم، ابعاد، شماره صفحه، برچسب گزینه‌ها */
.mono{
  font-family:var(--fa);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--muted);
  direction:ltr;
  unicode-bidi:isolate;
  /* ————— جعبه به اندازه‌ی متن، نه به اندازه‌ی ستون.
     بدون این دو خط، برچسب وقتی فرزندِ فلکسِ ستونی می‌شد (یعنی
     تقریباً همه‌جا: فوتر، کارت محصول، سرصفحه‌ها) کشیده می‌شد و
     تمام عرض را می‌گرفت؛ بعد direction:ltr متن را به لبه‌ی چپ
     می‌چسباند در حالی که بقیه‌ی ستون راست‌چین بود. در فوتر این
     یعنی ۲۲۰ پیکسل فاصله بین عنوانِ ستون و لینک‌های خودش.
     حالا جعبه جمع می‌شود و در جهت سند (راست) می‌نشیند. */
  width:fit-content;
  align-self:flex-start;
}

/* برچسب فنی — شماره بخش، برچسب صفحه، میکروکاپی. همان .mono با
   نمایش درون‌خطی؛ در همه صفحات لازم است، نه فقط صفحه اصلی. */
.label{
  font-family:var(--fa);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--muted);
  direction:ltr;
  unicode-bidi:isolate;
  display:inline-block;
  /* دلیلش بالا، در .mono، نوشته شده */
  width:fit-content;
  align-self:flex-start;
}

/* ————————————————————————————— برچسبِ تماماً فارسی

   فاصله‌ی حرفیِ ۰٫۲em و حروف‌بزرگ برای کدِ لاتین («VM-DIEGO»،
   «SCROLL») درست‌اند و باید بمانند. روی فارسی هیچ‌کدام کار
   نمی‌کنند: uppercase بی‌اثر است و tracking ریتم خط پیوسته را
   باز می‌کند و کلمه را شل نشان می‌دهد.

   این‌ها جاهایی‌اند که متنِ برچسب همیشه فارسیِ خالی است. برچسب‌های
   ترکیبی («001 — یک سیستم») عمداً اینجا نیستند: آن‌ها به
   direction:ltr نیاز دارند تا عدد اولِ خط بماند. */
.foot-col > .label,
.foot-trust > .label,
.page-head > .label,
.list-head > .label,
.gcard > .label,
.vomovo-form .label,
.empty-note + .label{
  direction:rtl;
  letter-spacing:0;
  text-transform:none;
}

a{color:inherit;text-decoration:none}

/* پیوند پرش — همه صفحات */
.skip{position:absolute;right:-9999px;top:var(--s4);z-index:99;
  background:var(--ink);color:var(--page);padding:var(--s3) var(--s5);border-radius:var(--r-full)}
.skip:focus{right:var(--s4)}

/* منوی بالا — روی همه صفحات ثابت است، بدون پس‌زمینه.
   اینجا حالت پیش‌فرض (رنگ ثابت). صفحه اصلی در home.css با
   mix-blend-mode جلوه‌ی خاص خودش را اضافه می‌کند، چون پشت هدر
   آن‌جا مدام عوض می‌شود (ویدیو، رنگ‌های مختلف)؛ صفحات ایستا فقط
   یک زمینه ثابت دارند و به آن ترفند نیازی ندارند. */
/* سه ستون: برند (شروع) — منو (وسط) — ابزارها (پایان).
   گرید جهت سند را رعایت می‌کند، پس در rtl ستون اول خودش راست
   می‌نشیند و لازم نیست چیزی دستی برعکس شود. */
.site-head{position:fixed;inset:0 0 auto 0;z-index:60;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:var(--s5) clamp(var(--s4),3.2vw,var(--s7))}

.brand{justify-self:start;display:flex;align-items:center;gap:var(--s3);
  font-family:var(--fa);font-weight:500;font-size:var(--fs-micro);
  letter-spacing:.42em;direction:ltr;color:var(--ink)}
.brand-mono{display:block;width:var(--s5);height:calc(var(--s5) * .74);
  background:currentColor;
  -webkit-mask:var(--mark) center/contain no-repeat;
  mask:var(--mark) center/contain no-repeat}

.site-nav-center{justify-self:center}
.nav-list{display:flex;gap:var(--s6);list-style:none;margin:0;padding:0}
.nav-list a{font-size:var(--fs-micro);color:var(--muted);transition:color var(--t-fast) var(--e)}
.nav-list a:hover{color:var(--ink)}

.site-tools{justify-self:end;display:flex;align-items:center;gap:var(--s3)}

.tswitch{display:flex;border:var(--hair) solid var(--gline);border-radius:var(--r-full);overflow:hidden}
.tswitch button{background:none;border:0;cursor:pointer;
  font-family:var(--fa);font-size:var(--fs-micro);letter-spacing:.2em;direction:ltr;
  color:var(--muted);padding:var(--s2) var(--s3);transition:color var(--t-fast) var(--e)}
.tswitch button.on{color:var(--ink)}

/* آیکن‌های جستجو، سبد، حساب — از زبان فرم برند (دایره و قوس)،
   نه آیکن آماده. box-sizing:content-box محل لمس را بزرگ می‌کند
   بدون اینکه بصری ضخیم‌تر به نظر برسد. */
.tool-btn{display:flex;align-items:center;justify-content:center;
  width:var(--s5);height:var(--s5);padding:var(--s2);box-sizing:content-box;
  background:none;border:0;cursor:pointer;color:var(--muted);
  transition:color var(--t-fast) var(--e)}
.tool-btn:hover{color:var(--ink)}

/* شمارنده سبد — نقطه‌ی ریز روی آیکن، با رنگ تأکیدی.
   خالی که باشد اصلاً دیده نمی‌شود. */
.cart-btn{position:relative}
.cart-count{position:absolute;top:0;inset-inline-end:0;z-index:2;
  display:grid;place-items:center;min-width:16px;height:16px;padding:0 4px;
  border-radius:var(--r-full);
  background:var(--signal);color:var(--on-signal);
  font-family:var(--fa);font-size:10px;line-height:1;
  direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;
  pointer-events:none}
.cart-count.is-empty{display:none}
.tool-btn svg{width:100%;height:100%;fill:none;stroke:currentColor;
  stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:var(--s6);height:var(--s6);background:none;border:0;cursor:pointer;
  padding:var(--s2);box-sizing:content-box}
.nav-burger span{display:block;width:100%;height:1.5px;background:currentColor;
  transition:transform var(--t-fast) var(--e),opacity var(--t-fast) var(--e)}
.nav-burger[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}

/* پنل جستجو — کشویی زیر هدر، با کلیک روی آیکن ذره‌بین */
.search-panel{position:fixed;inset:0 0 auto 0;z-index:59;
  padding:calc(var(--s9) + var(--s2)) clamp(var(--s4),3.2vw,var(--s7)) var(--s4);
  background:var(--glass-solid);border-bottom:var(--hair) solid var(--gline)}
.search-panel[hidden]{display:none}
.search-panel form{display:flex;gap:var(--s3);max-width:480px;margin-inline:auto}
.search-panel input{flex:1;min-width:0;font-family:var(--fa);font-size:var(--fs-body-s);color:var(--ink);
  background:none;border:var(--hair) solid var(--gline);border-radius:var(--r-full);
  padding:var(--s2) var(--s4)}
.search-panel input:focus{border-color:var(--ink)}
.search-panel button{display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:var(--s6);height:var(--s6);border-radius:50%;border:var(--hair) solid var(--gline);
  background:none;color:var(--ink);cursor:pointer}
.search-panel button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4}

/* ————————————————————————————— زیرمنو

   «محصولات» دسته‌هایش را زیر خودش باز می‌کند. پنل شیشه‌ای است —
   شیشه برای کنترل و اطلاعات مجاز است — با همان شعاع ۱۸ زبانِ فرم.

   بدون جاوااسکریپت: هاور برای موس، focus-within برای کیبورد. اگر
   هیچ‌کدام کار نکرد، خودِ «محصولات» به فهرست کامل می‌رود، پس هیچ
   دسته‌ای از دسترس خارج نمی‌شود. */

.nav-list > li{position:relative}

.sub-menu{
  position:absolute;z-index:60;
  top:100%;inset-inline-start:0;
  min-width:12rem;
  margin:0;padding:var(--s3) 0;
  list-style:none;
  background:var(--glass-solid);
  border:var(--hair) solid var(--gline);
  border-radius:var(--r-card);
  box-shadow:0 26px 70px -34px var(--shadow);
  opacity:0;visibility:hidden;
  transform:translateY(var(--s2));
  transition:opacity var(--t-fast) var(--e),
             visibility var(--t-fast) var(--e),
             transform var(--t-fast) var(--e)}

.nav-list > li:hover > .sub-menu,
.nav-list > li:focus-within > .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0)}

.sub-menu a{
  display:block;
  padding:var(--s2) var(--s5);
  font-size:var(--fs-body-s);
  white-space:nowrap}

@media (max-width:820px){
  .nav-burger{display:flex;color:var(--ink)}
  .is-home .nav-burger{color:var(--mod-white)}

  /* پیش‌فرض: بسته. با کلیک روی همبرگر پنل کشویی زیر هدر باز می‌شود */
  .nav-list{position:fixed;inset:0 0 auto 0;z-index:55;
    flex-direction:column;gap:0;
    background:var(--glass-solid);border-bottom:var(--hair) solid var(--gline);
    padding:calc(var(--s9) + var(--s4)) clamp(var(--s4),3.2vw,var(--s7)) var(--s5);
    transform:translateY(-100%);opacity:0;visibility:hidden;
    transition:transform var(--t-mid) var(--e),opacity var(--t-mid) var(--e),visibility var(--t-mid) var(--e)}
  .nav-list.open{transform:translateY(0);opacity:1;visibility:visible}
  .nav-list > li{border-top:var(--hair) solid var(--gline)}
  .nav-list > li:first-child{border-top:0}
  .nav-list a{display:block;padding:var(--s4) 0;font-size:var(--fs-body-s);color:var(--ink)}

  /* روی موبایل پنل کشویی معنی ندارد — زیرمنو باز و تورفته،
     داخل همان فهرست همبرگر می‌نشیند. */
  .sub-menu{
    position:static;
    opacity:1;visibility:visible;transform:none;
    min-width:0;padding:0 0 var(--s3);
    background:none;border:0;border-radius:0;box-shadow:none}
  .sub-menu li{border-top:0}
  .sub-menu a{
    padding:var(--s2) 0;
    padding-inline-start:var(--s4);
    color:var(--muted);font-size:var(--fs-body-s)}

  /* روی موبایل جای منوی وسط را ابزارها می‌گیرند؛ همبرگر خودش
     نشان‌دهنده منوست، پس ستون وسط خالی می‌ماند.

     display:contents نه none: خودِ <nav> از چیدمان بیرون می‌رود
     ولی فهرست داخلش سر جایش می‌ماند. با none، پنلی که همبرگر
     باز می‌کرد هم پنهان می‌شد — منوی موبایل اصلاً باز نمی‌شد. */
  .site-nav-center{display:contents}
  .site-head{grid-template-columns:auto 1fr}
}

/* ————————————————————————————— هدر روی صفحه‌ی باریک

   زیر ~۵۶۰ پیکسل، ردیف ابزارها از عرض صفحه بیشتر می‌شد و از لبه
   بیرون می‌زد: اول آیکن حساب کاربری، بعد همبرگر. یعنی روی گوشی
   منو اصلاً قابل باز کردن نبود.

   کلید تیره/روشن پهن‌ترین کنترل ردیف است (حدود ۱۴۰ پیکسل، بیشتر
   از سه آیکن با هم) و کم‌ضروری‌ترین: انتخاب کاربر در localStorage
   می‌ماند و حالت پیش‌فرض سایت تیره است. پس همان کنار می‌رود تا
   همبرگر و سبد سر جایشان بمانند. روی تبلت و دسکتاپ هست. */
@media (max-width:560px){
  /* پیش‌تر اینجا display:none بود. استدلالش درست بود — این کلید
     پهن‌ترین کنترل ردیف است — ولی نتیجه‌اش این شد که کاربر موبایل
     اصلاً نمی‌توانست حالت روشن را انتخاب کند، و موبایل بیشترِ
     بازدید است.
     به‌جای برداشتنِ کل کلید، فقط نیمه‌ی زائدش برداشته می‌شود:
     دکمه‌ای که همین حالا فعال است پنهان می‌ماند و تنها گزینه‌ی
     مقابل دیده می‌شود. عرض از دو برچسب به یکی می‌رسد، پس همان
     جایی که برای همبرگر و سبد لازم بود آزاد می‌شود.
     theme-toggle.js با هر تعویض، کلاس on را جابه‌جا می‌کند، پس
     دکمه‌ی دیده‌شده هم خودبه‌خود عوض می‌شود. */
  .tswitch button.on{display:none}
  .tswitch button{padding:var(--s3) var(--s4)}
  .site-tools{gap:var(--s2)}
}

/* فوتر — روی همه صفحات یکسان است.
   معرفی برند، سه ستون مساوی راهنمای سایت، نمادهای اعتماد (اگر
   تنظیم شده باشد)، و ردیف پایانی کپی‌رایت. هرکدام با یک خط
   جداکننده از ردیف قبلی. */
.site-foot{position:relative;z-index:40;background:var(--page);
  border-top:var(--hair) solid var(--gline)}

.foot-inner{display:flex;flex-direction:column;gap:var(--s7);
  padding:var(--s9) clamp(var(--s5),5vw,var(--s9)) var(--s7)}

.foot-lead{display:flex;flex-direction:column;gap:var(--s3);align-items:flex-start}
.foot-mono{display:block;width:var(--s8);height:calc(var(--s8) * .74);
  background:var(--ink);margin-bottom:var(--s2);
  -webkit-mask:var(--mark) center/contain no-repeat;
  mask:var(--mark) center/contain no-repeat}
.brand-mark{font-size:var(--fs-micro);letter-spacing:.42em;direction:ltr;color:var(--muted)}
.foot-core{font-size:var(--fs-card);font-weight:500}

/* همیشه دقیقاً سه ستون هم‌عرض و هم‌تعداد — ارتفاع فهرست‌ها برابر
   می‌ماند، پس ردیف زیرشان مستقیم و بدون پله می‌آید */
/* ستون‌ها و نمادها یک ردیف‌اند: ستون‌ها از سمت شروع، نمادها ته
   ردیف. خطِ بالا روی همین ردیف است، نه روی تک‌تکشان — وگرنه دو
   خط موازی کنار هم می‌افتاد. */
.foot-body{display:flex;flex-wrap:wrap;gap:var(--s7);
  align-items:flex-start;justify-content:space-between;
  border-top:var(--hair) solid var(--gline);padding-top:var(--s6)}

.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);
  flex:1 1 520px;max-width:880px}
.foot-col{display:flex;flex-direction:column;gap:var(--s3)}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}
.foot-col a{font-size:var(--fs-body-s);color:var(--muted);transition:color var(--t-fast) var(--e)}
.foot-col a:hover{color:var(--ink)}

/* نمادهای اعتماد — تصویر خاکستری در حالت عادی، رنگی روی هاور،
   تا با زبان بصری بی‌رنگ فوتر یکی بماند */
.foot-trust{display:flex;flex-direction:column;align-items:flex-start;
  gap:var(--s3);flex:0 1 auto}
.foot-trust > .label{color:var(--muted);white-space:nowrap}
.foot-badges{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap}
.foot-badge{display:block;line-height:0}
.foot-badge img{display:block;height:56px;width:auto;max-width:160px;
  object-fit:contain;filter:grayscale(1);opacity:.72;
  transition:filter var(--t-fast) var(--e),opacity var(--t-fast) var(--e)}
a.foot-badge:hover img{filter:none;opacity:1}

/* اینماد بزرگ‌تر و رنگی است، برخلاف بقیه نمادها.
   خاکستری‌کردنش دو مشکل داشت: مهر اینماد رنگ خودش را دارد و
   بی‌رنگ که شود شبیه تصویر خراب می‌شود، ضمن اینکه این نماد باید
   دیده شود — کارکردش همین است. */
.foot-badge-enamad img{
  height:clamp(88px,9vw,120px);
  /* max-width:none بود. وقتی سرور اینماد جواب نمی‌داد، جعبه‌ی
     تصویرِ خراب هیچ سقفی نداشت و متن جایگزین تا هر جا که لازم
     بود کش می‌آمد و ستون‌های فوتر را جابه‌جا می‌کرد. سقف
     عمداً از عرضِ خودِ مهر بزرگ‌تر است تا وقتی درست می‌آید
     بریده نشود. onerror در footer.php مهرِ نیامده را کلاً
     برمی‌دارد؛ این سقف همان حالتِ بین دو لحظه را مهار می‌کند،
     و اگر جاوااسکریپت خاموش بود هم کار می‌کند. */
  max-width:min(240px,100%);
  overflow:hidden;
  filter:none;opacity:1}

/* نوار پایین: سال در یک سو، لینک‌های حقوقی در سوی دیگر */
.foot-end{border-top:var(--hair) solid var(--gline);padding-top:var(--s5);
  display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:var(--s3) var(--s5)}
.foot-end > .label{color:var(--muted)}
.foot-legal{display:flex;flex-wrap:wrap;gap:var(--s5)}
.foot-legal a{font-size:var(--fs-body-s);color:var(--muted);
  transition:color var(--t-fast) var(--e)}
.foot-legal a:hover{color:var(--ink)}

@media (max-width:900px){
  .foot-cols{max-width:none;grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .foot-cols{grid-template-columns:1fr}
}

/* سرصفحه صفحات ایستا — درباره، تماس، ارسال و مانند آن */
.page-head{max-width:62ch;margin-inline:auto;margin-bottom:var(--s7)}
.page-head h1{margin-top:var(--s4)}
.page-lede{color:var(--muted);margin-top:var(--s3)}

/* فرم — تماس، ورود، ثبت‌نام */
.vomovo-form{display:flex;flex-direction:column;gap:var(--s5);max-width:48ch}
.vomovo-form label{display:flex;flex-direction:column;gap:var(--s2)}
.vomovo-form input,.vomovo-form textarea{
  font-family:var(--fa);font-size:var(--fs-body-s);color:var(--ink);
  background:none;border:var(--hair) solid var(--gline);border-radius:var(--r-card);
  padding:var(--s3) var(--s4);resize:vertical;
  transition:border-color var(--t-fast) var(--e)}
.vomovo-form input:focus,.vomovo-form textarea:focus{border-color:var(--ink)}
.vomovo-form .btn{align-self:flex-start}
/* تله‌ی ربات — نه دیده می‌شود، نه فوکوس می‌گیرد، نه خوانده
   می‌شود. display:none نیست چون بعضی ربات‌ها همان را می‌شناسند. */
.vomovo-form .hp{position:absolute;left:-9999px;width:1px;height:1px;
  overflow:hidden;opacity:0;pointer-events:none}
/* راه‌های تماس — بالای فرم صفحه‌ی تماس.
   برچسب و مقدار، دو ستون، با همان خطوط مویی بقیه‌ی سایت.
   عرض ستون برچسب ثابت است تا مقدارها زیر هم تراز بمانند. */
.contact-list{
  display:flex;flex-direction:column;
  gap:0;margin:0 0 var(--s7);max-width:48ch;
  border-top:var(--hair) solid var(--gline)}
.contact-row{
  display:flex;align-items:baseline;gap:var(--s4);
  padding:var(--s4) 0;
  border-bottom:var(--hair) solid var(--gline)}
.contact-row dt{flex:0 0 8ch;margin:0;color:var(--muted)}
.contact-row dd{margin:0;color:var(--ink);font-size:var(--fs-body-s);line-height:1.7}
.contact-row a{color:var(--ink);text-decoration:underline;
  text-underline-offset:4px;transition:color var(--t-fast) var(--e)}
.contact-row a:hover{color:var(--muted)}

/* شماره‌ی تلفن داده‌ی فنی است: لاتین، چپ‌چین، جدا از جهتِ جمله.
   بدون isolate، صفرِ اولِ شماره در بافت راست‌چین جابه‌جا می‌شود. */
.contact-tel{direction:ltr;unicode-bidi:isolate;display:inline-block}

.contact-postal{display:block;margin-top:var(--s1);
  color:var(--muted);font-size:var(--fs-micro)}

/* ردیف راه‌های خروج — صفحه ۴۰۴ و سبد خالی. دکمه و لینکِ ساده
   کنار هم، وسط‌چین نسبت به خط پایه تا لینک زیر دکمه نیفتد. */
.page-outs{display:flex;flex-wrap:wrap;align-items:center;
  gap:var(--s3) var(--s5);margin-top:var(--s5)}
.page-outs a:not(.btn){color:var(--muted);font-size:var(--fs-body-s);
  text-decoration:underline;text-underline-offset:4px;
  transition:color var(--t-fast) var(--e)}
.page-outs a:not(.btn):hover{color:var(--ink)}

.form-err{color:var(--signal);font-size:var(--fs-micro)}
.form-ok,.empty-note{color:var(--muted);margin-bottom:var(--s4)}

/* ————————————————————————————— زوم خودکار سافاری

   سافاری روی iOS وقتی فیلدی با فونتِ کوچک‌تر از ۱۶ فوکوس شود،
   کل صفحه را زوم می‌کند و بعد از بستن کیبورد هم برنمی‌گرداند —
   کاربر وسط پر کردن فرم، در یک صفحه‌ی بزرگ‌شده گیر می‌کند و
   باید دستی کوچکش کند.
   همه‌ی فیلدهای سایت روی --fs-body-s یعنی ۱۴ بودند. اینجا فقط
   روی صفحه‌ی باریک به ۱۶ می‌روند؛ روی دسکتاپ همان ۱۴ می‌ماند
   چون آنجا این رفتار وجود ندارد و اندازه‌ی طراحی درست است.

   ۱۶px عدد خام است و توکن نمی‌شود: آستانه‌ی رفتار سافاریست،
   نه یک اندازه‌ی طراحی. همین دلیل در woo.css هم نوشته شده. */
@media (max-width:820px){
  .vomovo-form input,
  .vomovo-form textarea,
  #loginform input[type="text"],
  #loginform input[type="password"],
  #loginform input[type="email"],
  .search-panel input{
    font-size:16px;
  }
}

/* فرم ورود بومی وردپرس — wp_login_form(), وقتی ووکامرس نصب نیست */
#loginform{display:flex;flex-direction:column;gap:var(--s5);max-width:48ch}
#loginform label{display:flex;flex-direction:column;gap:var(--s2);font-size:var(--fs-micro);color:var(--muted)}
#loginform input[type="text"],#loginform input[type="password"],#loginform input[type="email"]{
  font-family:var(--fa);font-size:var(--fs-body-s);color:var(--ink);
  background:none;border:var(--hair) solid var(--gline);border-radius:var(--r-card);
  padding:var(--s3) var(--s4);width:100%;
  transition:border-color var(--t-fast) var(--e)}
#loginform input:focus{border-color:var(--ink)}
#loginform p.login-remember{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-micro);color:var(--muted)}
#loginform p.login-submit input{
  border:0;border-radius:var(--r-full);background:var(--ink);color:var(--page);
  padding:var(--s3) var(--s5);font-family:var(--fa);font-size:var(--fs-body-s);cursor:pointer;
  transition:background var(--t-fast) var(--e)}
#loginform p.login-submit input:hover{background:var(--signal);color:var(--on-signal)}

/* سؤالات متداول */
.faq-list{border-top:var(--hair) solid var(--gline)}
.faq-item{border-bottom:var(--hair) solid var(--gline);padding:var(--s4) 0}
/* علامت + پیش از سؤال می‌آید، نه در لبه‌ی دور.
   با space-between علامت به انتهای ردیف می‌رفت: اندازه‌گیری
   روی سؤال واقعی، ۳۴۳ پیکسل فاصله بین پایان متن و علامت —
   بیش از نصف عرض ردیف. علامت از سؤالِ خودش جدا می‌افتاد و
   معلوم نبود کدام به کدام است.
   بردنش به ابتدای ردیف هر دو چیز را با هم می‌دهد: چسبیده به
   متن، و چون ابتدای همه‌ی ردیف‌ها یکی است، علامت‌ها هنوز در
   یک ستون منظم می‌نشینند. order به‌جای تبدیل ::after به
   ::before استفاده شده تا چرخشِ ۴۵ درجه‌ی حالت باز دست‌نخورده
   بماند. */
.faq-item summary{cursor:pointer;font-weight:500;color:var(--ink);
  list-style:none;display:flex;align-items:center;
  justify-content:flex-start;gap:var(--s3)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--muted);font-size:var(--fs-card);
  transition:transform var(--t-fast) var(--e);flex-shrink:0;
  order:-1;line-height:1;
  /* عرض ثابت تا چرخیدنِ + متنِ کنارش را جابه‌جا نکند */
  width:1ch;text-align:center}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item summary:hover{color:var(--ink)}
.faq-item summary:hover::after{color:var(--ink)}
.faq-item summary:focus-visible{outline:var(--hair) solid var(--ink);
  outline-offset:var(--s2)}
.faq-item p{color:var(--muted);margin-top:var(--s3)}

.btn{
  border:0;
  border-radius:var(--r-full);
  background:var(--ink);
  color:var(--page);
  padding:var(--s3) var(--s5);
  font-family:var(--fa);
  font-size:var(--fs-body-s);
  cursor:pointer;
  transition:background var(--t-fast) var(--e);
}
.btn:hover{background:var(--signal);color:var(--on-signal)}

/* شیشه.
   دو چیز شیشه را شیشه می‌کند و هیچ‌کدام «رنگ کارت» نیست:
     ۱. پس‌زمینه از پشتش دیده می‌شود — تار و کمی تیره، نه پوشیده
     ۲. لبه‌ی بالا نور می‌گیرد، مثل ضخامت واقعی یک ورق شیشه
   فال‌بک برای مرورگر بدون backdrop-filter مات است، چون شفافیتِ
   بدون تاری یعنی متنِ ناخوانا. */
.glass{
  background:var(--glass-solid);
  border:var(--hair) solid var(--glass-line);
  border-top-color:var(--glass-rim);
  border-radius:var(--r-card);
  box-shadow:0 var(--s5) calc(var(--s6) * 2) calc(var(--s6) * -1) var(--shadow);
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .glass{
    background:var(--glass);
    backdrop-filter:var(--glass-filter);
    -webkit-backdrop-filter:var(--glass-filter);
  }
}

/* متن بلند — صفحه نوشته و برگه.
   padding-top بلندتر است چون منوی بالا fixed است و روی محتوا
   می‌نشیند؛ این فاصله جایش را باز نگه می‌دارد. */
.prose-sec{padding:var(--s10) clamp(var(--s5),5vw,var(--s9)) var(--s9)}
.prose-inner{max-width:62ch;margin-inline:auto}
.prose-inner > * + *{margin-top:var(--s5)}
.prose-inner h1,.prose-inner h2{margin-top:var(--s6)}
.prose-inner p{color:var(--muted)}
.prose-inner img{max-width:100%;height:auto;border-radius:var(--r-card)}

:focus-visible{outline:1.5px solid var(--signal);outline-offset:var(--s1)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ————————————————————————————— تعویض تم

   یک فریم، همه ترنزیشن‌ها خاموش. js/theme-toggle.js این کلاس را
   دقیقاً موقع عوض‌کردن data-t می‌گذارد و بلافاصله برمی‌دارد.

   چرا لازم است: عنصری که روی color ترنزیشن دارد و لحظه‌ی تعویض
   دیده نمی‌شود، رنگش روی تم قبلی گیر می‌کند. مثال واقعی: دکمه‌ی
   کارت ۰۰۳ در حالت روشن با رنگ تیره‌مود می‌ماند و کنتراستش به
   ۱.۲ می‌افتد. !important لازم است چون باید بر همه‌ی قواعد
   ترنزیشن غلبه کند. */
.t-swap,
.t-swap *,
.t-swap *::before,
.t-swap *::after{
  transition:none !important;
}

/* ————————————————————————————— ارسال: پس‌کرایه

   کرایه به عهده‌ی مشتری است و هنگام تحویل، مستقیم به شرکت حمل
   پرداخت می‌شود. برای همین هزینه‌ی هر سه روش در ووکامرس صفر است.

   ووکامرس برای نرخ صفر خودش کلمه‌ی «رایگان» را می‌گذارد — که
   دقیقاً برعکس واقعیت است و مشتری را گمراه می‌کند. پس پنهانش
   می‌کنیم. خودِ کلمه‌ی «پس‌کرایه» در عنوان روش نوشته شده
   (ووکامرس ← حمل و نقل ← منطقه ایران).

   این قاعده امن است: کلاس --free را ووکامرس فقط روی نرخ صفر
   می‌گذارد. اگر روزی روش ارسالی با هزینه‌ی واقعی اضافه شود،
   قیمتش عادی نشان داده می‌شود و این قاعده به آن کاری ندارد. */
.wc-block-checkout__shipping-option--free{display:none}

/* انتخاب روش ارسال فقط یک جا انجام می‌شود: سبد خرید.
   تکرارش در صفحه‌ی پرداخت کار اضافه بود.
   آنچه در سبد انتخاب شده به سفارش می‌رود؛ و اگر کاربر مستقیم
   وارد صفحه‌ی پرداخت شود، ووکامرس خودش اولین روش را انتخاب
   می‌کند، پس هیچ سفارشی بدون روش ارسال ثبت نمی‌شود. */
.wp-block-woocommerce-checkout-shipping-methods-block{display:none}

/* ————————————————————————————— متن فقط برای صفحه‌خوان

   وردپرس در صفحه‌بندی و فرم جستجو تگ‌هایی با کلاس
   screen-reader-text چاپ می‌کند. تا وقتی این کلاس تعریف نشده
   بود، آن متن‌ها («صفحه‌بندی نوشته‌ها» و مانند آن) وسط صفحه
   دیده می‌شدند. */
.screen-reader-text{
  position:absolute;width:1px;height:1px;
  margin:-1px;padding:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}

/* روی فوکوس دیده می‌شود — لینک «پرش به…» باید پیدا باشد */
.screen-reader-text:focus{
  position:static;width:auto;height:auto;
  margin:0;overflow:visible;clip-path:none;white-space:normal}

/* ————————————————————————————— صفحه‌بندی و فهرست نتیجه */

.pagination{margin-top:var(--s7)}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:var(--s2)}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:var(--s6);padding:var(--s2) var(--s3);
  border:var(--hair) solid var(--gline);border-radius:var(--r-full);
  color:var(--muted);font-size:var(--fs-body-s);
  transition:color var(--t-fast) var(--e),border-color var(--t-fast) var(--e)}
.pagination .page-numbers:hover{color:var(--ink);border-color:var(--ink)}
.pagination .page-numbers.current{color:var(--on-signal);
  background:var(--signal);border-color:var(--signal)}
.pagination .page-numbers.dots{border-color:transparent}

.search-hit h2{margin-top:var(--s6);font-size:var(--fs-body)}
.search-hit h2 a{color:var(--ink)}
.search-hit h2 a:hover{text-decoration:underline;text-underline-offset:4px}
