@charset "UTF-8";
/* ===========================================================================
   اچ‌وی‌لرن — یک فایل، کلِ ظاهرِ سایت.
   ---------------------------------------------------------------------------
   چرا یک فایل: این سایت ۷ دوره و چند صفحه دارد. تقسیم‌کردنش به ده فایل فقط
   ده درخواستِ شبکه اضافه می‌کرد بدونِ اینکه چیزی حل کند.
   همه‌ی رنگ‌ها توکن‌اند، پس عوض‌کردنِ تمِ سایت یعنی عوض‌کردنِ همین بلوکِ اول.
   =========================================================================== */

/* --------------------------------------------------------------- فونت --- */
@font-face{font-family:"YekanBakh";src:url(../fonts/YekanBakhFaNum-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"YekanBakh";src:url(../fonts/YekanBakhFaNum-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"YekanBakh";src:url(../fonts/YekanBakhFaNum-Bold.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  /* سطح‌ها */
  --bg:#040b10;
  --bg-2:#071219;
  --surface:#0d1620;
  --surface-2:#122029;
  --line:rgba(154,166,210,.13);
  --line-2:rgba(154,166,210,.22);

  /* تاکید — همان سبزِ اچ‌وی‌مووی، چون قرار است دو سایت یک خانواده دیده شوند. */
  --acc:#19e3a2;
  --acc-2:#8dffd9;
  --acc-deep:#0a7d5c;
  --acc-rgb:25,227,162;
  --on-acc:#041710;

  /* رنگِ دومِ تاکید — آبیِ فیروزه‌ای، برای وجه آموزشی و تفکیکِ حالت‌ها */
  --ok:#49c9ff;
  --ok-rgb:73,201,255;
  --warn:#ffc46b;
  --danger:#ff6b81;

  /* متن */
  --tx:#eef1f8;
  --tx-2:#c3cbe0;
  --muted:#8e99b8;

  --wrap:1180px;
  --r:18px;
  --r-lg:26px;
  --shadow:0 24px 60px rgba(3,6,16,.5);
}

/* --------------------------------------------------------------- پایه --- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--tx);
  font-family:"YekanBakh",Tahoma,system-ui,sans-serif;
  font-size:15px;line-height:1.95;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* svg عمداً از این قاعده بیرون است: height:auto ویژگیِ بالاتری از گاردِ
   :where() پایین دارد و آیکون‌ها را از اندازه‌ی درست در می‌آورد. */
img,video{max-width:100%;height:auto;display:block}
svg{max-width:100%;display:block}

/* گاردِ سراسریِ آیکون‌ها.
   :where() ویژگیِ صفر دارد، پس هر قاعده‌ی واقعیِ بعدی بر آن غالب است — ولی
   هر SVGی که هیچ قاعده‌ای نگیرد، به‌جای ۳۰۰×۱۵۰ِ پیش‌فرضِ مرورگر، ۱em
   می‌شود. این دقیقاً همان اشتباهی است که یک‌بار آیکون‌های اچ‌وی‌مووی را
   از کادر بیرون انداخت؛ این‌جا از اول بسته است. */
:where(svg){width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.mnav-close svg{width:15px;height:15px}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0 0 .6em;line-height:1.5;font-weight:700}
p{margin:0 0 1em}
::selection{background:rgba(var(--acc-rgb),.3)}

/* پس‌زمینه‌ی ثابتِ سایت — یک لایه‌ی GPU که با اسکرول بازرسم نمی‌شود */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 50% at 85% -10%,rgba(var(--acc-rgb),.16),transparent 60%),
    radial-gradient(ellipse 60% 45% at 5% 105%,rgba(var(--ok-rgb),.07),transparent 60%),
    linear-gradient(170deg,var(--bg-2) 0%,var(--bg) 55%);
  transform:translateZ(0);
}

.hvl-wrap{width:min(var(--wrap),calc(100% - 32px));margin-inline:auto}
/* [hidden] را هیچ display ای نباید بشکند. بدونِ این، .pl-grid{display:grid}
   بر آن غالب می‌شد و هر چهار دوره‌ی اشتراک هم‌زمان زیرِ هم می‌افتادند. */
[hidden]{display:none!important}

.hvl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ------------------------------------------------------------- دکمه‌ها --- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;padding:0 22px;border-radius:999px;border:1px solid transparent;
  font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s,background-color .18s,border-color .18s;
  -webkit-tap-highlight-color:transparent;
}
.btn:active{transform:translateY(1px)}
.btn svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.btn-acc{background:linear-gradient(118deg,var(--acc-2),var(--acc) 58%,var(--acc-deep));color:var(--on-acc)}
.btn-acc:hover{transform:translateY(-2px);box-shadow:0 14px 32px -10px rgba(var(--acc-rgb),.65)}
.btn-ghost{background:rgba(255,255,255,.045);border-color:var(--line-2);color:var(--tx)}
.btn-ghost:hover{border-color:rgba(var(--acc-rgb),.5);background:rgba(var(--acc-rgb),.1)}
.btn-line{background:transparent;border-color:var(--line-2);color:var(--tx-2)}
.btn-line:hover{color:var(--tx);border-color:var(--acc)}
.btn-block{width:100%}
.btn-sm{min-height:38px;padding:0 15px;font-size:12.5px}
.btn[disabled],.btn.is-off{opacity:.45;pointer-events:none}

/* --------------------------------------------------------------- کارت --- */
.card{
  background:linear-gradient(168deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 42%),var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);
}
.chip{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;
  font-size:11.5px;font-weight:700;background:rgba(var(--acc-rgb),.14);
  color:var(--acc-2);border:1px solid rgba(var(--acc-rgb),.28);
}
.chip-ok{background:rgba(var(--ok-rgb),.13);color:var(--ok);border-color:rgba(var(--ok-rgb),.3)}
.chip-mute{background:rgba(255,255,255,.05);color:var(--muted);border-color:var(--line)}

.sec{padding:58px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.sec-head h2{margin:0;font-size:22px}
.sec-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}
/* سربرگِ وسط‌چین — برای بخش‌هایی که عنوان باید مرکزِ توجه باشد */
.sec-head.is-mid{flex-direction:column;align-items:center;text-align:center;gap:4px}
.sec-head.is-mid p{max-width:58ch}

/* ================================================================ هدر === */
/* هم‌شکلِ تاپ‌بارِ اچ‌وی‌مووی: گرادیانِ تیره، گوشه‌های پایینِ گرد، و یک خطِ
   نازکِ نورانی به رنگِ تم زیرش. بلور یک‌لایه است — این عنصر چسبان است و با
   هر فریمِ اسکرول بازترکیب می‌شود، پس بلورِ چندلایه این‌جا گران است. */
.hd{position:sticky;top:0;z-index:900;border-bottom:1px solid var(--line);
  background:linear-gradient(120deg,rgba(6,13,18,.94),rgba(10,18,24,.9));
  border-radius:0 0 22px 22px;
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%)}
.hd::after{content:"";position:absolute;inset-inline:8%;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(var(--acc-rgb),.55),transparent)}
.hd-in{display:flex;align-items:center;gap:14px;min-height:80px}
/* لوگو می‌تواند کوتاه شود (min-width:0)؛ اکشن‌ها نه. قبلاً هر دو flex:0 0 auto
   بودند و روی گوشی مجموعشان از عرضِ کادر بیشتر می‌شد و برگر از لبه می‌زد بیرون. */
.hd-logo{display:flex;align-items:center;gap:11px;font-weight:700;font-size:16px;flex:0 1 auto;min-width:0}
.hd-logo > span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hd-mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--acc-2),var(--acc) 55%,var(--acc-deep));color:var(--on-acc);
  font-weight:700;font-size:15px;box-shadow:0 6px 18px -6px rgba(var(--acc-rgb),.6)}
.hd-logo small{display:block;font-size:10.5px;font-weight:400;color:var(--muted);line-height:1.4}

.hd-nav{display:flex;align-items:center;gap:4px;margin-inline-start:14px;flex:1}
.hd-nav a{padding:8px 13px;border-radius:10px;font-size:13.5px;color:var(--tx-2);transition:color .16s,background-color .16s}
.hd-nav a:hover{color:var(--tx);background:rgba(255,255,255,.06)}
.hd-nav a.is-on{color:var(--acc-2);background:rgba(var(--acc-rgb),.12);font-weight:500}
/* margin-inline-start:auto یعنی همیشه تا انتهای هدر (در RTL: سمتِ چپ) می‌رود و
   برگر آخرین آیتم است، پس همیشه دقیقاً گوشه‌ی چپِ داخلِ کادر می‌نشیند. */
.hd-act{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-inline-start:auto}
@media (max-width:560px){
  .hd-logo small{display:none}      /* شعارِ زیرِ نام روی موبایل جا ندارد */
  .hd-in{gap:10px}
}

.hd-me{display:flex;align-items:center;gap:9px;padding:6px 13px 6px 6px;border-radius:999px;
  background:rgba(255,255,255,.045);border:1px solid var(--line)}
.hd-me:hover{border-color:rgba(var(--acc-rgb),.45)}
.hd-me b{font-size:12.5px;font-weight:500}
.hd-me i{font-style:normal;display:block;font-size:10px;color:var(--acc-2)}
.hd-av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--acc-2),var(--acc-deep));
  display:grid;place-items:center;color:var(--on-acc);font-size:13px;font-weight:700;flex:0 0 auto}

.hd-burger{display:none;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:rgba(255,255,255,.05);
  border:1px solid var(--line);align-items:center;justify-content:center;cursor:pointer}
.hd-burger span{display:block;width:17px;height:1.6px;background:var(--tx);border-radius:2px;position:relative}
.hd-burger span::before,.hd-burger span::after{content:"";position:absolute;inset-inline:0;height:1.6px;background:var(--tx);border-radius:2px}
.hd-burger span::before{top:-5.5px}.hd-burger span::after{top:5.5px}

@media (max-width:900px){
  .hd-nav{display:none}
  .hd-me b,.hd-me i{display:none}
  .hd-me{padding:5px}
}

/* ---------------------------------------------------------- سایدبار --- */
/*
  آف‌کانواس از لبه‌ی راست — هم‌شکلِ سایدبارِ اچ‌وی‌مووی، و جای‌گزینِ پاپ‌آپی که
  از بالا باز می‌شد. در هر عرضی در دسترس است (دکمه‌ی برگر همیشه هست)، چون
  همه‌ی مسیرها — منوی سایت و بخش‌های پنل — این‌جا جمع شده‌اند.

  پنهان‌شدن فقط با translateX کافی نیست: روی کشِ لاستیکیِ iOS از زیرِ لبه
  بیرون می‌زند. پس visibility هم خاموش می‌شود، با تاخیر تا انیمیشن تمام شود.
*/
.hv-scrim{position:fixed;inset:0;z-index:1150;background:rgba(2,7,10,.68);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility 0s linear .28s;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.hv-scrim.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s ease,visibility 0s}

.hv-side{
  /* عمداً `right` فیزیکی، نه inset-inline-*: این سایت همیشه RTL است و
     خاصیتِ منطقی این‌جا فقط سردرگمی می‌آورد (inline-end در RTL یعنی چپ).
     سایدبار باید سمتِ راست باشد، مثلِ اچ‌وی‌مووی. */
  position:fixed;z-index:1200;top:14px;bottom:14px;right:14px;
  width:300px;max-width:calc(100vw - 42px);
  display:flex;flex-direction:column;padding:16px 13px 14px;
  border-radius:26px;border:1px solid var(--line-2);
  background:
    radial-gradient(circle at 50% 110%,rgba(var(--acc-rgb),.13),transparent 58%),
    linear-gradient(180deg,rgba(13,22,32,.97),rgba(4,10,14,.99));
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  transform:translateX(118%);
  visibility:hidden;
  transition:transform .34s cubic-bezier(.2,.8,.2,1),visibility 0s linear .34s;
  overscroll-behavior:contain;touch-action:pan-y;
}
.hv-side.open{transform:none;visibility:visible;
  transition:transform .34s cubic-bezier(.2,.8,.2,1),visibility 0s}
html.hvl-lock{overflow:hidden}

.hv-side-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.hv-side-x{width:34px;height:34px;flex:0 0 auto;border-radius:11px;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid var(--line);color:var(--tx-2);
  display:grid;place-items:center}
.hv-side-x:hover{color:var(--tx);border-color:var(--line-2)}
.hv-side-x svg{width:15px;height:15px}

.hv-side-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;
  overscroll-behavior-y:contain;scrollbar-width:thin}
.hv-side-scroll::-webkit-scrollbar{width:4px}
.hv-side-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}

.hv-side-me{display:flex;align-items:center;gap:10px;padding:11px 12px;margin-bottom:14px;
  border-radius:16px;background:rgba(var(--acc-rgb),.09);border:1px solid rgba(var(--acc-rgb),.24)}
.hv-side-me:hover{background:rgba(var(--acc-rgb),.14)}
.hv-side-me-tx{min-width:0}
.hv-side-me-tx b{display:block;font-size:13px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hv-side-me-tx i{font-style:normal;display:block;font-size:10.5px;color:var(--acc-2)}

.hv-side-cap{margin:14px 4px 8px;font-size:10.5px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.hv-side-cap:first-child{margin-top:0}

.hv-side-nav{display:flex;flex-direction:column;gap:3px}
.hv-side-nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:13px;
  font-size:13.5px;color:var(--tx-2);transition:background-color .16s,color .16s}
.hv-side-nav a:hover{background:rgba(255,255,255,.055);color:var(--tx)}
.hv-side-nav a.is-on{background:rgba(var(--acc-rgb),.14);color:var(--acc-2);font-weight:500}
.hv-side-nav svg{width:18px;height:18px}

.hv-side-foot{flex:0 0 auto;padding-top:12px;margin-top:10px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px}
.hv-side-out{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:13px;
  font-size:13px;color:var(--danger);transition:background-color .16s}
.hv-side-out:hover{background:rgba(255,107,129,.1)}
.hv-side-out svg{width:17px;height:17px}

/* دکمه‌ی برگر در همه‌ی عرض‌ها هست — سایدبار دیگر فقط مالِ موبایل نیست */
.hd-burger{display:grid;place-items:center}

/* =============================================================== فوتر === */
/*
  ساختار عمداً هم‌خانواده‌ی فوترِ اچ‌وی‌مووی است: یک «نوار» بالا (لوگو + معرفی +
  دکمه‌های سریع + شبکه‌های اجتماعی)، بعد یک شبکه‌ی کارت، و آخر نوارِ حقوقی.

  بلورِ تدریجی: پنج لایه که هر کدام دو برابرِ قبلی بلور دارد و با ماسکِ
  گرادیانی فقط در نوارِ خودش دیده می‌شود — گذرِ نرم به‌جای یک خطِ تیز.
  فقط این‌جا، چون فوتر ثابت می‌ایستد؛ روی هدرِ چسبان هر فریمِ اسکرول یک پاسِ
  بلورِ تازه است و واقعاً گران.
*/
.ft{position:relative;margin-top:64px;padding-top:132px;overflow:hidden}
.ft-blur{position:absolute;inset-inline:0;top:0;height:200px;pointer-events:none;z-index:1}
.ft-blur span{position:absolute;inset:0}
.ft-blur span:nth-child(1){-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 28%,transparent 42%);
          mask-image:linear-gradient(to bottom,transparent 0%,#000 14%,#000 28%,transparent 42%)}
.ft-blur span:nth-child(2){-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  -webkit-mask-image:linear-gradient(to bottom,transparent 14%,#000 28%,#000 42%,transparent 56%);
          mask-image:linear-gradient(to bottom,transparent 14%,#000 28%,#000 42%,transparent 56%)}
.ft-blur span:nth-child(3){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  -webkit-mask-image:linear-gradient(to bottom,transparent 28%,#000 42%,#000 56%,transparent 70%);
          mask-image:linear-gradient(to bottom,transparent 28%,#000 42%,#000 56%,transparent 70%)}
.ft-blur span:nth-child(4){-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  -webkit-mask-image:linear-gradient(to bottom,transparent 42%,#000 56%,#000 70%,transparent 84%);
          mask-image:linear-gradient(to bottom,transparent 42%,#000 56%,#000 70%,transparent 84%)}
.ft-blur span:nth-child(5){-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  -webkit-mask-image:linear-gradient(to bottom,transparent 56%,#000 72%,#000 100%);
          mask-image:linear-gradient(to bottom,transparent 56%,#000 72%,#000 100%)}
.ft-tint{position:absolute;inset-inline:0;top:0;height:200px;z-index:2;pointer-events:none;
  background:linear-gradient(to bottom,transparent,rgba(3,8,11,.5) 60%,#03080b)}

.ft-body{position:relative;z-index:3;background:#03080b;border-top:1px solid var(--line)}
.ft-glow{position:absolute;top:-1px;inset-inline:16%;height:1px;z-index:4;
  background:linear-gradient(90deg,transparent,rgba(var(--acc-rgb),.65),transparent)}

/* ---- نوارِ بالا ---- */
.ft-band{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;
  padding:30px 0 26px;border-bottom:1px solid var(--line)}
.ft-band .hd-logo{font-size:17px}
.ft-bio{margin:0 0 11px;font-size:12.5px;line-height:2.1;color:var(--muted);max-width:60ch}
.ft-pills{display:flex;gap:8px;flex-wrap:wrap}
.ft-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;
  font-size:12px;font-weight:500;color:var(--tx-2);
  background:rgba(255,255,255,.045);border:1px solid var(--line);transition:all .18s}
.ft-pill:hover{color:var(--acc-2);border-color:rgba(var(--acc-rgb),.45);transform:translateY(-1px)}
.ft-pill svg{width:14px;height:14px}
.ft-act{display:flex;flex-direction:column;gap:11px;align-items:flex-end}

/* ---- شبکه‌ی کارت‌ها ---- */
.ft-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:28px 0}
.ft-card{padding:20px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.045),rgba(255,255,255,.01) 44%),rgba(255,255,255,.015);
  border:1px solid var(--line)}
.ft-card-head{display:flex;align-items:center;gap:11px;margin-bottom:15px}
.ft-chip{width:38px;height:38px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;
  background:rgba(var(--acc-rgb),.13);border:1px solid rgba(var(--acc-rgb),.26);color:var(--acc)}
.ft-chip svg{width:17px;height:17px}
.ft-card-head h4{margin:0;font-size:13.5px}
.ft-card-head small{font-size:10.5px;color:var(--muted)}

.ft-links{display:flex;flex-direction:column;gap:10px}
.ft-links a{font-size:12.5px;color:var(--muted);width:fit-content;transition:color .16s}
.ft-links a:hover{color:var(--acc-2)}

.ft-ct{display:flex;flex-direction:column;gap:12px}
.ft-ct div{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--tx-2);line-height:1.9}
.ft-ct svg{width:16px;height:16px;margin-top:4px;color:var(--acc)}
.ft-ct a:hover{color:var(--acc-2)}

/* کارتِ اعتماد — جای اینماد. HTMLاش از تنظیمات می‌آید و دستِ ما نیست،
   پس فقط قاب و سقفِ اندازه می‌گذاریم. */
.ft-trust{display:flex;flex-direction:column;gap:13px;
  background:linear-gradient(160deg,rgba(var(--acc-rgb),.12),rgba(255,255,255,.01) 55%),rgba(255,255,255,.015);
  border-color:rgba(var(--acc-rgb),.26)}
.ft-trust small{font-size:11.5px;color:var(--muted);line-height:1.95}
.ft-trust-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:auto}
.ft-trust-box img{max-height:96px;width:auto;border-radius:9px;background:#fff;padding:4px}
.ft-trust-ph{display:grid;place-items:center;width:96px;height:96px;border-radius:11px;
  border:1px dashed var(--line-2);color:var(--muted);font-size:10.5px;text-align:center;padding:9px;line-height:1.7}

/* ---- نوارِ حقوقی ---- */
.ft-bar{border-top:1px solid var(--line);padding:16px 0;display:flex;align-items:center;
  justify-content:space-between;gap:14px;flex-wrap:wrap}
.ft-bar p{margin:0;font-size:11.5px;color:var(--muted)}
.ft-soc{display:flex;gap:8px}
.ft-soc a{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--tx-2);transition:all .18s}
.ft-soc a:hover{color:var(--acc);border-color:rgba(var(--acc-rgb),.5);transform:translateY(-2px)}
.ft-soc svg{width:17px;height:17px}

@media (max-width:980px){
  .ft-cards{grid-template-columns:1fr 1fr}
  .ft-trust{grid-column:1 / -1}
}
@media (max-width:760px){
  .ft{padding-top:120px;margin-top:56px}
  .ft-band{grid-template-columns:1fr;gap:18px}
  .ft-act{align-items:stretch}
  .ft-cards{grid-template-columns:1fr;padding:22px 0}
}

/* ================================================== هیروی صفحه‌ی اصلی === */
.hero{position:relative;padding:62px 0 48px;text-align:center}
.hero h1{font-size:clamp(26px,4.4vw,42px);line-height:1.6;margin:0 auto 16px;max-width:19ch}
.hero h1 em{font-style:normal;background:linear-gradient(110deg,var(--acc-2),var(--ok));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{font-size:14.5px;color:var(--tx-2);max-width:56ch;margin:0 auto 26px;line-height:2.1}
.hero-cta{display:flex;gap:11px;justify-content:center;flex-wrap:wrap}
.hero-stats{display:flex;gap:30px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.hero-stat b{display:block;font-size:24px;color:var(--acc-2)}
.hero-stat span{font-size:11.5px;color:var(--muted)}

/* ================================================== کارتِ دوره === */
.grid-courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.cc{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(168deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 42%),var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s,box-shadow .22s}
.cc:hover{transform:translateY(-4px);border-color:rgba(var(--acc-rgb),.42);box-shadow:0 20px 44px -18px rgba(var(--acc-rgb),.42)}
.cc-fig{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);display:block}
.cc-fig img{width:100%;height:100%;object-fit:cover;display:block}
/* جای‌گزینِ تصویر: یک کاشیِ گرادیانی با مونوگرامِ سایت، نه یک مستطیلِ خالی.
   وقتی تصویر هم نرسد (۴۰۴ یا شبکه‌ی کُند) همین زیرش دیده می‌شود. */
.hvl-thumb-ph{display:grid;place-items:center;width:100%;height:100%;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%,rgba(var(--acc-rgb),.3),transparent 70%),
    linear-gradient(145deg,var(--surface-2),var(--surface));
  color:rgba(var(--acc-rgb),.45);font-weight:700;font-size:26px;letter-spacing:.06em}
.hvl-thumb-ph::after{content:"HV"}
.cc-state{position:absolute;top:10px;inset-inline-end:10px;z-index:2}
.cc-bd{padding:16px 17px 18px;display:flex;flex-direction:column;flex:1;gap:8px}
.cc-cat{font-size:11px;color:var(--acc);font-weight:500}
/* عنوان دقیقاً دو خط: با عددها و واژه‌های لاتینِ وسطِ متن، قدِ متغیر کارت‌ها
   را از ریتم می‌انداخت. min-height همان دو خط را رزرو می‌کند. */
.cc-bd h3{margin:0;font-size:14.5px;line-height:1.8;min-height:calc(2 * 1.8em);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-bd p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.95;text-align:justify;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-ft{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.cc-ft small{font-size:11.5px;color:var(--muted)}

/* ================================================== صفحه‌ی پلن‌ها === */
.pl-head{text-align:center;padding:52px 0 10px}
.pl-head .chip{margin-bottom:16px}
.pl-head h1{font-size:clamp(24px,3.6vw,34px);margin-bottom:12px}
.pl-head p{font-size:13.5px;color:var(--muted);max-width:58ch;margin:0 auto;line-height:2.1}

.pl-tabs{display:flex;gap:6px;justify-content:center;margin:26px auto 30px;padding:6px;width:fit-content;max-width:100%;
  border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);
  overflow-x:auto;scrollbar-width:none}
.pl-tabs::-webkit-scrollbar{display:none}
@media (max-width:520px){.pl-tab{padding:9px 13px;font-size:12px}.pl-tab em{display:none}}
.pl-tab{padding:9px 18px;border-radius:999px;border:0;background:transparent;color:var(--muted);
  font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}
.pl-tab.is-on{background:linear-gradient(118deg,var(--acc-2),var(--acc) 60%,var(--acc-deep));color:var(--on-acc)}
.pl-tab em{font-style:normal;font-size:10.5px;opacity:.85;margin-inline-start:5px}

/* padding-top جا برای بجِ «پیشنهاد ما» باز می‌کند؛ بدونش روی لبه‌ی بالاییِ
   کارت و هر چیزی که بالایش باشد می‌افتاد. */
.pl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch;padding-top:14px}
@media (max-width:1040px){.pl-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.pl-grid{grid-template-columns:1fr}}

.pl{position:relative;display:flex;flex-direction:column;padding:26px 22px 24px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line);transition:transform .22s,border-color .22s,box-shadow .22s}
.pl:hover{transform:translateY(-3px);border-color:rgba(var(--acc-rgb),.4)}
.pl.is-best{border-color:rgba(var(--acc-rgb),.55);box-shadow:0 0 0 1px rgba(var(--acc-rgb),.18),0 24px 56px -22px rgba(var(--acc-rgb),.55)}
.pl-flag{position:absolute;top:-12px;inset-inline-start:50%;transform:translateX(50%);z-index:2;
  padding:4px 14px;border-radius:999px;font-size:10.5px;font-weight:700;
  background:linear-gradient(118deg,var(--acc-2),var(--acc-deep));color:var(--on-acc);white-space:nowrap}
.pl-name{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.pl-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.pl-name b{font-size:17px}
.pl-quota{font-size:12.5px;color:var(--acc-2);margin-bottom:18px;font-weight:500}
.pl-price{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-bottom:3px}
.pl-price b{font-size:27px;line-height:1.3}
.pl-price span{font-size:12.5px;color:var(--muted)}
.pl-was{font-size:12px;color:var(--muted);text-decoration:line-through;margin-bottom:16px;min-height:19px}
.pl-off{display:inline-block;margin-inline-start:6px;padding:2px 8px;border-radius:999px;font-size:10.5px;
  background:rgba(var(--ok-rgb),.14);color:var(--ok);text-decoration:none}
.pl ul{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}
.pl li{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--tx-2);line-height:1.9}
.pl li svg{width:15px;height:15px;margin-top:4px;flex:0 0 auto;color:var(--ok);
  fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pl .btn{margin-top:auto}

/* ================================================== دروازه‌ی دوره === */
.gate{max-width:600px;margin:30px auto;padding:34px 26px;text-align:center;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line)}
.gate-ic{width:62px;height:62px;margin:0 auto 18px;border-radius:20px;display:grid;place-items:center;
  background:rgba(var(--acc-rgb),.14);border:1px solid rgba(var(--acc-rgb),.3);color:var(--acc-2)}
.gate-ic svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gate h3{font-size:19px;margin-bottom:10px}
.gate p{font-size:13px;color:var(--muted);line-height:2.1;max-width:46ch;margin:0 auto 20px}
.gate-warn{display:flex;gap:10px;text-align:start;padding:13px 15px;border-radius:14px;margin:0 0 20px;
  background:rgba(255,196,107,.09);border:1px solid rgba(255,196,107,.26)}
.gate-warn svg{width:17px;height:17px;flex:0 0 auto;margin-top:4px;color:var(--warn);
  fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.gate-warn p{margin:0;font-size:12px;color:var(--warn);line-height:1.95;max-width:none}
.gate-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.gate-meter{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:18px}
.gate-meter i{width:26px;height:5px;border-radius:99px;background:rgba(255,255,255,.1);font-style:normal}
.gate-meter i.on{background:linear-gradient(90deg,var(--acc-2),var(--acc))}

/* ================================================== ورود === */
.auth{min-height:72vh;display:grid;place-items:center;padding:40px 0}
.auth-card{width:min(420px,100%);padding:32px 26px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line);box-shadow:var(--shadow)}
.auth-card h1{font-size:21px;text-align:center;margin-bottom:6px}
.auth-card>p{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:24px;line-height:2}
.fld{margin-bottom:15px}
.fld label{display:block;font-size:12px;color:var(--tx-2);margin-bottom:7px;font-weight:500}
/* ⚠️ font-size حتماً ≥۱۶px: سافاریِ iOS روی هر ورودیِ کوچک‌تر، موقعِ فوکوس
   کلِ صفحه را زوم می‌کند و دیگر برنمی‌گرداند — همان «صفحه یهو زوم می‌شود»
   موقعِ زدنِ کدِ تایید. */
.fld input{width:100%;height:52px;padding:0 15px;border-radius:14px;background:rgba(255,255,255,.04);
  border:1px solid var(--line-2);color:var(--tx);font-size:16px;transition:border-color .18s,background-color .18s}
.fld input:focus{outline:none;border-color:var(--acc);background:rgba(var(--acc-rgb),.07)}
.fld input::placeholder{color:#5d6885}
.fld-code input{text-align:center;letter-spacing:.5em;font-size:22px;font-weight:700;padding-inline-start:.5em}
/* گاردِ سراسری — هیچ ورودی‌ای در این قالب نباید زیرِ ۱۶px باشد */
input,select,textarea{font-size:max(16px,1em)}
.auth-msg{margin:0 0 14px;padding:11px 14px;border-radius:12px;font-size:12.5px;line-height:1.9;display:none}
.auth-msg.show{display:block}
.auth-msg.err{background:rgba(255,107,129,.11);color:#ff9fae;border:1px solid rgba(255,107,129,.26)}
.auth-msg.ok{background:rgba(var(--ok-rgb),.11);color:var(--ok);border:1px solid rgba(var(--ok-rgb),.26)}
.auth-back{display:block;text-align:center;margin-top:16px;font-size:12px;color:var(--muted);background:none;border:0;cursor:pointer;width:100%}
.auth-back:hover{color:var(--acc-2)}
.auth-timer{text-align:center;font-size:12px;color:var(--muted);margin-top:14px}

/* ================================================== پنل === */
.pn{display:grid;grid-template-columns:238px 1fr;gap:22px;padding:28px 0 60px;align-items:start}
@media (max-width:900px){.pn{grid-template-columns:1fr}
  /* ناوبریِ پنل روی موبایل یک ردیفِ اسکرولِ افقی بود که نصفِ آیتم‌هایش دیده
     نمی‌شد. حالا همان فهرست کامل داخلِ سایدبار است، پس این‌جا برمی‌داریمش. */
  .pn-side{display:none}}
.pn-side{position:sticky;top:94px;padding:16px 13px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line)}
@media (max-width:900px){.pn-side{position:static}}
.pn-side nav{display:flex;flex-direction:column;gap:3px}

.pn-side a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:13px;
  font-size:13px;color:var(--tx-2);white-space:nowrap;transition:background-color .16s,color .16s}
.pn-side a:hover{background:rgba(255,255,255,.055);color:var(--tx)}
.pn-side a.is-on{background:rgba(var(--acc-rgb),.14);color:var(--acc-2);font-weight:500}
.pn-side svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.pn-main{min-width:0;display:flex;flex-direction:column;gap:18px}
.pn-card{padding:22px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line)}
.pn-card h2{font-size:17px;margin-bottom:4px}
.pn-card>p{font-size:12.5px;color:var(--muted);margin-bottom:18px}

.sub-hero{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:24px;border-radius:var(--r-lg);
  background:linear-gradient(125deg,rgba(var(--acc-rgb),.2),rgba(var(--acc-rgb),.05) 55%),var(--surface);
  border:1px solid rgba(var(--acc-rgb),.32)}
.sub-hero-tx{flex:1;min-width:200px}
.sub-hero b{display:block;font-size:20px;margin-bottom:4px}
.sub-hero small{font-size:12.5px;color:var(--tx-2)}
.sub-ring{--p:0;width:92px;height:92px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:conic-gradient(var(--acc) calc(var(--p)*1%),rgba(255,255,255,.08) 0)}
.sub-ring i{width:74px;height:74px;border-radius:50%;background:var(--surface);display:grid;place-items:center;
  font-style:normal;font-size:17px;font-weight:700}
.sub-ring i em{font-style:normal;display:block;font-size:9.5px;color:var(--muted);font-weight:400}

.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{text-align:start;padding:10px 12px;color:var(--muted);font-weight:500;font-size:11.5px;border-bottom:1px solid var(--line)}
.tbl td{padding:13px 12px;border-bottom:1px solid var(--line);color:var(--tx-2)}
.tbl tr:last-child td{border-bottom:0}
.tbl-wrap{overflow-x:auto}

.empty{text-align:center;padding:34px 20px;color:var(--muted);font-size:13px}
.empty svg{width:42px;height:42px;margin:0 auto 14px;opacity:.4;fill:none;stroke:currentColor;stroke-width:1.5}

/* ================================================== صفحه‌ی دوره === */
.cs-hero{padding:34px 0 24px}
.cs-hero h1{font-size:clamp(21px,3.2vw,30px);margin-bottom:12px}
.cs-meta{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:20px}
.cs-fig{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);margin-bottom:26px}
.cs-body{font-size:14px;line-height:2.15;color:var(--tx-2)}
.cs-body h2,.cs-body h3{color:var(--tx);margin-top:1.6em}
.cs-body img{border-radius:14px;margin:1.2em 0}
.cs-body ul,.cs-body ol{padding-inline-start:1.3em}
.cs-body li{margin-bottom:.5em}
.cs-body a{color:var(--acc-2);text-decoration:underline;text-underline-offset:3px}
.cs-body blockquote{margin:1.4em 0;padding:14px 18px;border-inline-start:3px solid var(--acc);
  background:rgba(var(--acc-rgb),.07);border-radius:0 14px 14px 0}
.cs-body pre{background:#0a0d16;border:1px solid var(--line);border-radius:14px;padding:16px;overflow:auto;direction:ltr;text-align:left}

/* ================================================== صفحه‌های محتوایی === */
/* صفحه‌های «درباره» و «تماس»: عنوان و مقدمه وسط‌چین، متنِ بدنه جاستیفای.
   جاستیفایِ فارسی بدونِ hyphens خوب در می‌آید چون کلمه‌ها کوتاه‌اند و فاصله‌ی
   بینِ کلمات کشیده می‌شود، نه حروف. */
.pg{padding:44px 0 20px;text-align:center}
.pg h1{font-size:clamp(24px,3.6vw,34px);margin-bottom:12px}
.pg-lead{font-size:14.5px;color:var(--tx-2);line-height:2.2;max-width:62ch;margin:0 auto 30px}
.pg-body{font-size:14px;line-height:2.25;color:var(--tx-2);max-width:72ch;margin-inline:auto;
  text-align:justify;text-align-last:center}
.pg-body p{margin-bottom:1.3em}
.pg-body p:last-child{margin-bottom:0}
/* عنوانِ کوچکِ بالای تیتر */
.pg-eyebrow{display:inline-flex;margin-bottom:14px}

/* کارت‌های تماس — وسط‌چین و قدِ برابر. قبلاً آیکون کنارِ متن بود و با
   متن‌های کوتاه/بلندِ متفاوت، ردیف بی‌ریتم می‌شد. */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:30px}
.ct-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  padding:26px 20px;border-radius:var(--r-lg);
  background:linear-gradient(168deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 44%),var(--surface);
  border:1px solid var(--line);transition:border-color .2s,transform .2s}
.ct-item:hover{border-color:rgba(var(--acc-rgb),.4);transform:translateY(-3px)}
/* جعبه‌ی آیکون.
   `.ct-item .ct-ic` (نه فقط `.ct-ic`): ویژگیِ بالاتر، تا هیچ قاعده‌ی متنی‌ای
   نتواند display یا رنگش را بشکند. قبلاً `.ct-item span{display:block;color:muted}`
   همین span را هم می‌گرفت: جعبه به block تبدیل و آیکون خاکستری می‌شد، و سافاری
   گلیف را کنارِ مرکز می‌چید. حالا flex است و گلیف دقیقاً وسط می‌نشیند. */
.ct-item .ct-ic{width:52px;height:52px;flex:0 0 52px;border-radius:17px;margin:0;padding:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(var(--acc-rgb),.13);border:1px solid rgba(var(--acc-rgb),.26);color:var(--acc);
  font-size:0;line-height:0}
.ct-item .ct-ic svg{width:23px;height:23px;margin:0;flex:0 0 23px;display:block}

/* متنِ کارت: فقط داخلِ div متن — نه روی جعبه‌ی آیکون */
.ct-item > div{min-width:0;width:100%}
.ct-item > div b{display:block;font-size:13.5px;margin:0 0 2px}
.ct-item > div span,.ct-item > div a{display:block;font-size:12.5px;color:var(--muted);line-height:2;
  overflow-wrap:anywhere}
.ct-item > div a:hover{color:var(--acc-2)}

/* ================================================== پیام‌ها === */
.note{display:flex;gap:11px;padding:14px 16px;border-radius:15px;margin-bottom:18px;font-size:12.5px;line-height:1.95;
  align-items:flex-start;max-width:760px;margin-inline:auto}
.note svg{width:18px;height:18px;flex:0 0 auto;margin-top:3px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.note-ok{background:rgba(var(--ok-rgb),.1);border:1px solid rgba(var(--ok-rgb),.26);color:var(--ok)}
.note-err{background:rgba(255,107,129,.1);border:1px solid rgba(255,107,129,.26);color:#ff9fae}
.note-info{background:rgba(var(--acc-rgb),.1);border:1px solid rgba(var(--acc-rgb),.26);color:var(--acc-2)}

/* ================================================== تسویه === */
.co{max-width:560px;margin:34px auto}
.co-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}
.co-row:last-of-type{border-bottom:0}
.co-row span{color:var(--muted)}
.co-row b{font-size:14px}
.co-total b{font-size:20px;color:var(--acc-2)}
.co-legal{font-size:11.5px;color:var(--muted);text-align:center;line-height:2;margin-top:14px}

/* ================================================== توست === */
.toast{position:fixed;inset-block-end:22px;inset-inline:0;margin-inline:auto;width:fit-content;max-width:calc(100% - 32px);
  z-index:1400;display:flex;align-items:center;gap:10px;padding:13px 19px;border-radius:999px;font-size:13px;
  background:var(--surface-2);border:1px solid var(--line-2);box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .22s,transform .22s,visibility 0s linear .22s}
.toast.show{opacity:1;visibility:visible;transform:none;transition:opacity .22s,transform .22s,visibility 0s}
.toast.err{border-color:rgba(255,107,129,.4);color:#ff9fae}
.toast.ok{border-color:rgba(var(--ok-rgb),.4);color:var(--ok)}
