/* Shared Persian typography; font files use Google Fonts display=swap. */
:root { --pb-body: 'Vazirmatn', Tahoma, sans-serif; --pb-heading: 'Noto Sans Arabic', 'Vazirmatn', Tahoma, sans-serif; }
body { font-family: var(--pb-body); line-height: 1.85; }
body h1, body h2, body h3, body h4, body h5, body h6, body .font-display,
body .hm-title, body .hm-sec-title, body .td-title, body .vp-title, body .vp-h {
  font-family: var(--pb-heading); font-weight: 800; line-height: 1.65; letter-spacing: 0;
}
body .font-mono, body .font-nums, body .mbox-when, body .mchip-when,
body .td-count-v, body .td-when, body .tm-time, body .rs-sc {
  font-family: var(--pb-body); font-variant-numeric: tabular-nums; letter-spacing: 0;
}
body .post-content { font-family: var(--pb-body); line-height: 2.1; }
/* Explicit editor-selected fonts/styles remain authoritative. */
body .post-content h2, body .post-content h3, body .post-content h4 { line-height: 1.85; }
body .hm-lead, body .td-ex { line-height: 2; }
@media (max-width: 480px) {
  body .hm-title { font-size: 30px; }
  body .hm-sec-title, body .td-title { font-size: 21px; }
}
body .vp h1, body .vp h2, body .vp h3, body .vp-dlg h3, body .vo-card h1,
body .br-title, body .dp-h, body .vo-brand { font-family: var(--pb-heading); font-weight: 800; }
body .br-rank, body .vp-price b, body .vp-perday b, body .vp-rows .vp-pay dd,
body .vo-meta b, body .vp-steps li::before { font-family: var(--pb-body); font-variant-numeric: tabular-nums; }
/* Order page does not load the site's box-sizing reset. Keep its padded card inside 390px. */
.vo, .vo *, .vo *::before, .vo *::after { box-sizing: border-box; }
.vo-card { min-width: 0; max-width: min(480px, 100%); }
.vo-meta b { max-width: 100%; overflow-wrap: anywhere; }
.vo-form .vp-btn { width: auto; flex: 0 0 auto; white-space: nowrap; }
