/* ==========================================================================
   زبان‌نگار — توکن‌های مشترک طراحی «zn» برای ۱۹ ویجت جدید المنتور
   سه تم: cream (کرم استخوانی/روشن) · plum (پلوم/تیره) · midnight (شبانه/تیره)
   اسکوپ: .zn-scope[data-zn-theme="..."] — به بقیه‌ی سایت نشت نمی‌کند.
   ========================================================================== */

.zn-scope {
  /* تم پیش‌فرض: کرم استخوانی (روشن) */
  --zn-deep: #ECE3D6; --zn-bg0: #F6EFE4; --zn-bg1: #FCF7EF; --zn-img: #E8DCC9;
  --zn-glass-85: rgba(255, 251, 245, .9); --zn-glass-72: rgba(255, 251, 245, .76); --zn-glass-55: rgba(255, 251, 245, .55);
  --zn-line: 150, 92, 66;
  --zn-t1: #2B1620; --zn-t2: #47293A; --zn-t3: #5D3A49; --zn-t4: #74525F; --zn-t5: #8B6975; --zn-t6: #A98B94;
  --zn-rose: #E11D48; --zn-rose2: #F0417A; --zn-crim: #C61040; --zn-gold: #D99500; --zn-gold2: #EA6A12;
  --zn-soft: #C41E4C; --zn-soft2: #D63A6E; --zn-goldsoft: #A9720A;
  --zn-glow1: rgba(226, 64, 38, .15); --zn-glow2: rgba(245, 179, 1, .17);
  --zn-ghost: rgba(170, 88, 58, .11);
  --zn-card: rgba(255, 255, 255, .66);
  --zn-cardsh: 0 20px 44px rgba(120, 55, 30, .17), 0 1px 0 rgba(255, 255, 255, .85) inset;
  --zn-cardsh-soft: 0 8px 22px rgba(120, 55, 30, .08), 0 1px 0 rgba(255, 255, 255, .6) inset;
  --zn-cardsh-hover: 0 14px 32px rgba(120, 55, 30, .13);
  --zn-fill2: rgba(150, 82, 52, .06); --zn-fill3: rgba(150, 82, 52, .05);
  --zn-wash1: rgba(226, 70, 40, .08); --zn-wash2: rgba(245, 179, 1, .11);

  position: relative;
  direction: rtl;
  background: var(--zn-bg0);
  color: var(--zn-t1);
  font-family: 'Vazirmatn', IRANYekanX, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
  overflow-x: clip;
}

.zn-scope[data-zn-theme="plum"] {
  --zn-deep: #09040F; --zn-bg0: #110615; --zn-bg1: #1B0A1F; --zn-img: #230D25;
  --zn-glass-85: rgba(30, 14, 26, .85); --zn-glass-72: rgba(30, 14, 26, .72); --zn-glass-55: rgba(30, 14, 26, .55);
  --zn-line: 255, 150, 175;
  --zn-t1: #F4EEF6; --zn-t2: #E4D4E0; --zn-t3: #CFBCCC; --zn-t4: #B9A2B6; --zn-t5: #A48CA2; --zn-t6: #8A748A;
  --zn-rose: #FF3B5C; --zn-rose2: #FF5C8A; --zn-crim: #E11D48; --zn-gold: #F5B301; --zn-gold2: #F97316;
  --zn-soft: #FFB3C1; --zn-soft2: #FFC2D2; --zn-goldsoft: #F5CE5B;
  --zn-glow1: rgba(225, 29, 72, .34); --zn-glow2: rgba(255, 92, 138, .26);
  --zn-ghost: rgba(255, 150, 175, .07);
  --zn-card: rgba(255, 182, 201, .05);
  --zn-cardsh: 0 22px 48px rgba(0, 0, 0, .52), 0 1px 0 rgba(255, 182, 201, .06) inset;
  --zn-cardsh-soft: 0 10px 24px rgba(0, 0, 0, .24), 0 1px 0 rgba(255, 182, 201, .05) inset;
  --zn-cardsh-hover: 0 16px 34px rgba(0, 0, 0, .34);
  --zn-fill2: rgba(255, 255, 255, .04); --zn-fill3: rgba(255, 255, 255, .05);
  --zn-wash1: rgba(225, 29, 72, .09); --zn-wash2: rgba(255, 92, 138, .09);
}

.zn-scope[data-zn-theme="midnight"] {
  --zn-deep: #05070F; --zn-bg0: #0A0F1C; --zn-bg1: #101827; --zn-img: #131E33;
  --zn-glass-85: rgba(14, 22, 40, .85); --zn-glass-72: rgba(14, 22, 40, .72); --zn-glass-55: rgba(14, 22, 40, .55);
  --zn-line: 150, 180, 255;
  --zn-t1: #EEF3FC; --zn-t2: #D7DFEF; --zn-t3: #BEC8DE; --zn-t4: #A0ABC6; --zn-t5: #8593B0; --zn-t6: #6E7C98;
  --zn-rose: #FF3B5C; --zn-rose2: #FF5C8A; --zn-crim: #E11D48; --zn-gold: #F5B301; --zn-gold2: #F97316;
  --zn-soft: #FFB3C1; --zn-soft2: #FFC2D2; --zn-goldsoft: #F5CE5B;
  --zn-glow1: rgba(225, 29, 72, .3); --zn-glow2: rgba(96, 120, 255, .22);
  --zn-ghost: rgba(160, 190, 255, .07);
  --zn-card: rgba(160, 190, 255, .05);
  --zn-cardsh: 0 22px 48px rgba(0, 0, 0, .55), 0 1px 0 rgba(160, 190, 255, .06) inset;
  --zn-cardsh-soft: 0 10px 24px rgba(0, 0, 0, .26), 0 1px 0 rgba(160, 190, 255, .05) inset;
  --zn-cardsh-hover: 0 16px 34px rgba(0, 0, 0, .36);
  --zn-fill2: rgba(255, 255, 255, .04); --zn-fill3: rgba(255, 255, 255, .05);
  --zn-wash1: rgba(225, 29, 72, .09); --zn-wash2: rgba(96, 120, 255, .1);
}

/* ---------- گِرِین (بافت کاغذی تم روشن) ---------- */
.zn-scope .zn-grain {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 150px 150px;
  mix-blend-mode: multiply;
  transition: opacity .4s ease;
}
.zn-scope[data-zn-theme="cream"] .zn-grain { opacity: .3; }

/* ---------- عناصر پایه داخل اسکوپ ---------- */
.zn-scope *, .zn-scope *::before, .zn-scope *::after { box-sizing: border-box; }
/* رنگ پیش‌فرض لینک‌ها با :where() نوشته شده تا اختصاصیت آن صفر بماند و
   کلاس‌های دکمه‌ای ویجت‌ها (مثل .znhr-btn-pri) همیشه بر آن غلبه کنند. */
:where(.zn-scope a) { color: var(--zn-soft); text-decoration: none; transition: color .2s ease; }
:where(.zn-scope a:hover) { color: #FFD3DC; }
:where(.zn-scope[data-zn-theme="cream"] a:hover) { color: var(--zn-crim); }
.zn-scope input, .zn-scope select, .zn-scope textarea, .zn-scope button { font-family: 'Vazirmatn', IRANYekanX, system-ui, sans-serif; }
.zn-scope input::placeholder, .zn-scope textarea::placeholder { color: var(--zn-t6); }
.zn-scope input:focus, .zn-scope select:focus, .zn-scope textarea:focus { outline: 2px solid rgba(255, 59, 92, .3); outline-offset: 0; border-color: transparent !important; }
.zn-scope select option { color: #150A18; }
.zn-scope summary::-webkit-details-marker { display: none; }
.zn-scope [data-scrollhide]::-webkit-scrollbar { display: none; }

/* ---------- انیمیشن‌های مشترک ---------- */
@keyframes zn-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes zn-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes zn-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.5); opacity: .65; } }
@keyframes zn-spin { to { transform: rotate(360deg); } }
@keyframes zn-ripple { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(2.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .zn-scope [data-marquee] { animation: none !important; }
}

/* ---------- قواعد واکنش‌گرای مشترک (بر پایه‌ی data-attribute طرح) ---------- */
@media (max-width: 980px) {
  .zn-scope [data-split] { grid-template-columns: 1fr !important; }
  .zn-scope [data-hide-md] { display: none !important; }
  .zn-scope [data-footer-grid] { grid-template-columns: 1fr 1fr !important; }
  .zn-scope [data-lang-grid] { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
  .zn-scope [data-lang-grid] { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
  .zn-scope [data-steps] { grid-template-columns: repeat(2, 1fr) !important; row-gap: 36px !important; }
  .zn-scope [data-steps] > [aria-hidden] { display: none !important; }
}
@media (max-width: 640px) {
  .zn-scope [data-pod-grid] { grid-template-columns: 1fr !important; }
}
@media (max-width: 900px) {
  .zn-scope [data-quote-grid] { grid-template-columns: 1fr !important; }
}
@media (max-width: 720px) {
  .zn-scope [data-topbar-extra] { display: none !important; }
  .zn-scope [data-hero-h1] { font-size: 44px !important; }
  .zn-scope [data-sched-cell] { display: none !important; }
  .zn-scope [data-sched-row] { grid-template-columns: 1fr auto !important; }
}
@media (max-width: 600px) {
  .zn-scope [data-ghost] { font-size: 74px !important; }
  .zn-scope [data-stat-num] { font-size: 34px !important; }
  .zn-scope [data-two] { grid-template-columns: 1fr !important; }
  .zn-scope [data-footer-grid] { grid-template-columns: 1fr !important; }
}

/* ---------- کارت راهنما (rcard) با هاور پرشونده ---------- */
.zn-scope .zn-rcard .zn-rc-t, .zn-scope .zn-rcard .zn-rc-d, .zn-scope .zn-rcard .zn-rc-arrow, .zn-scope .zn-rcard .zn-rc-ic { transition: color .25s ease, background .25s ease, border-color .25s ease; }
/* حالت برجسته/هاور کارت — از متغیر خوانده می‌شود تا کنترل‌های المنتور
   بتوانند با وجود !important آن را بازنویسی کنند. گرادیان پیش‌فرض دقیقاً
   همان گرادیان نوار متحرک (.znmq) است. */
.zn-scope .zn-rcard:hover, .zn-scope .zn-rcard-hot { background: var(--rc-hot-bg, linear-gradient(90deg, var(--zn-crim), var(--zn-rose) 52%, var(--zn-rose2))) !important; border-color: transparent !important; box-shadow: var(--rc-hot-shadow, 0 18px 46px rgba(225, 29, 72, .34)) !important; }
.zn-scope .zn-rcard:hover .zn-rc-t, .zn-scope .zn-rcard-hot .zn-rc-t, .zn-scope .zn-rcard:hover .zn-rc-d, .zn-scope .zn-rcard-hot .zn-rc-d { color: var(--rc-hot-text, #fff) !important; }
.zn-scope .zn-rcard:hover .zn-rc-arrow, .zn-scope .zn-rcard-hot .zn-rc-arrow { border-color: var(--rc-hot-arrow, rgba(255, 255, 255, .55)) !important; color: var(--rc-hot-text, #fff) !important; }
.zn-scope .zn-rcard:hover .zn-rc-ic, .zn-scope .zn-rcard-hot .zn-rc-ic { background: var(--rc-hot-icbg, rgba(255, 255, 255, .22)) !important; box-shadow: none !important; }

/* ---------- اسلایدر مشترک (Swiper طبق ساختار قالب) ---------- */
.zn-scope .zbn-viewport { position: relative; }
.zn-scope .zbn-grid { display: grid; grid-template-columns: repeat(var(--zbn-cols, 3), 1fr); gap: 18px; }
.zn-scope .swiper { overflow: hidden; }
.zn-scope .swiper-slide { height: auto; }
.zn-scope .zbn-nav { position: absolute; top: 42%; transform: translateY(-50%); z-index: 6; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--zn-crim), var(--zn-rose)); display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 24px rgba(255, 59, 92, .35); transition: box-shadow .2s ease; }
.zn-scope .zbn-nav:hover { box-shadow: 0 0 34px rgba(255, 59, 92, .5); }
.zn-scope .zbn-prev { right: -16px; }
.zn-scope .zbn-next { left: -16px; }
.zn-scope .swiper-pagination { position: relative; margin-top: 18px; text-align: center; }
.zn-scope .swiper-pagination-bullet { background: var(--zn-t5); opacity: .5; }
.zn-scope .swiper-pagination-bullet-active { background: var(--zn-rose); opacity: 1; }

/* ---------- کمکی‌های عمومی طرح ---------- */
.zn-scope .zn-container { max-width: 1200px; margin: 0 auto; padding-inline: clamp(18px, 4vw, 40px); }
.zn-scope .zn-img-ph { display: flex; align-items: center; justify-content: center; text-align: center; padding: 14px; background: var(--zn-img); color: var(--zn-t5); font-size: 12.5px; font-weight: 700; }
