/* Malino typography: display / reading / financial data.
   Self-hosted, unmodified fonts. Sources and licenses: fonts/README.md. */
@font-face {
  font-family: "Estedad";
  src: url("./fonts/Estedad-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Shabnam";
  src: url("./fonts/Shabnam-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Shabnam";
  src: url("./fonts/Shabnam-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
}
@font-face {
  font-family: "Shabnam";
  src: url("./fonts/Shabnam-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}
@font-face {
  font-family: "Vazirmatn";
  src: url("./fonts/Vazirmatn-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --font-display: "Estedad", "Vazirmatn", Tahoma, sans-serif;
  --font-body: "Shabnam", "Vazirmatn", Tahoma, sans-serif;
  --font-data: "Vazirmatn", "Shabnam", Tahoma, sans-serif;
  /* Compatibility tokens keep existing components on the same type system. */
  --display: var(--font-body);
  --font: var(--font-body);
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: normal;
  line-height: 1.9;
}

button, input, select, textarea {
  font-family: var(--font-body);
}

h1, h2, h3, h4, .brand, .say-intro strong, .tools-directory b {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: normal;
}

.brand {
  font-weight: 750;
}

.hero h1, .auth-message h1 {
  font-family: var(--font-display);
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: normal;
}
.hero h1 {
  font-size: clamp(38px, 5vw, 72px);
}
.section h2, .audience h2, .roadmap h2, .waitlist h2, .demo-copy h2 {
  font-weight: 650;
  line-height: 1.6;
  letter-spacing: normal;
}
.hero-text {
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 2.05;
  font-weight: 400;
}
.site-shell :is(.steps p, .feature-card p, .feature-large p, .audience-description, .roadmap-copy p:not(.eyebrow), .waitlist > div > p:not(.eyebrow)) {
  font-size: 16px;
  line-height: 2;
}
.site-shell :is(.desktop-nav a, .mobile-nav a, .header-cta, .button) {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 15px;
}
.eyebrow, .step-label, .voice-card-top, .sentence-type {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: normal;
}
.sentence-track article > p, .voice-card > p {
  font-family: var(--font-body);
  font-weight: 400;
}
.auth-message > p:last-child,
.auth-form-wrap form > p:not(.step-label):not(.field-error) {
  font-size: 16px;
  line-height: 2;
}
.auth-form-wrap label {
  font-size: 14px;
  font-weight: 500;
}

/* Persian digits retain a consistent shape across balances and reports. */
.price, .trust-row b, .transaction-main > b,
.preview-balance strong, .preview-grid b, .preview-list strong,
.balance-card :is(h2, strong), .kpi-card strong, .report-kpis strong,
.phase-kpis strong, .debt-summary strong, .budget-summary strong,
.summary-row b, .amount, .professional-card > strong,
.invoice-paper > strong, .data-table td:not(:first-child),
.notification-count, input[inputmode="numeric"], input[inputmode="decimal"],
input[type="number"], input[type="tel"], #otp {
  font-family: var(--font-data);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 590px) {
  .hero h1 {
    font-size: clamp(34px, 9.4vw, 44px);
    line-height: 1.6;
  }
  .site-shell .header-cta {
    font-size: 13px;
  }
}
