/* Aftabgoon typography system v14 — preview only */

@font-face {
  font-family: "Aftabgoon Vazirmatn";
  src: url("/fonts/Vazirmatn-Variable.ttf") format("truetype-variations");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Aftabgoon IBM Plex Sans";
  src: url("/fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Aftabgoon IBM Plex Sans";
  src: url("/fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Aftabgoon IBM Plex Sans";
  src: url("/fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --aft-type-fa: "Aftabgoon Vazirmatn", Vazirmatn, Tahoma, Arial, sans-serif;
  --aft-type-en: "Aftabgoon IBM Plex Sans", "IBM Plex Sans", Arial, sans-serif;
  --aft-type-body: 1.0625rem;
  --aft-type-small: 0.9375rem;
  --aft-type-card: 1.35rem;
  --aft-type-section: clamp(2.125rem, 3vw, 2.375rem);
  --aft-type-hero-fa: clamp(3rem, 4vw, 3.5rem);
  --aft-type-hero-en: clamp(2.625rem, 3.7vw, 3.25rem);
}

html[lang="fa"] body,
.site-page[lang="fa"] {
  font-family: var(--aft-type-fa);
  font-size: var(--aft-type-body);
  line-height: 1.9;
}

html[lang="en"] body,
.site-page[lang="en"] {
  font-family: var(--aft-type-en);
  font-size: 1rem;
  line-height: 1.7;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

/* Persian headings no longer use the decorative display face. */
.site-page[lang="fa"] h1,
.site-page[lang="fa"] h2,
.site-page[lang="fa"] h3,
html[lang="fa"] body:not(.site-page) h1,
html[lang="fa"] body:not(.site-page) h2,
html[lang="fa"] body:not(.site-page) h3 {
  font-family: var(--aft-type-fa);
  letter-spacing: 0;
}

.site-page[lang="en"] h1,
.site-page[lang="en"] h2,
.site-page[lang="en"] h3,
html[lang="en"] body:not(.site-page) h1,
html[lang="en"] body:not(.site-page) h2,
html[lang="en"] body:not(.site-page) h3 {
  font-family: var(--aft-type-en);
}

/* Navigation: clear and calm instead of display-heavy. */
.site-page[lang="fa"] .primary-nav .nav-trigger,
.site-page[lang="fa"] .primary-nav .nav-direct,
.site-page[lang="fa"] .primary-nav .nav-sublink,
.site-page[lang="en"] .primary-nav .nav-trigger,
.site-page[lang="en"] .primary-nav .nav-direct,
.site-page[lang="en"] .primary-nav .nav-sublink {
  font-family: inherit;
  font-size: var(--aft-type-small);
  font-weight: 600;
  line-height: 1.65;
}

/* Homepage hierarchy. */
.site-page[lang="fa"] .hero h1 {
  font-size: var(--aft-type-hero-fa);
  font-weight: 800;
  line-height: 1.5;
}

.site-page[lang="en"] .hero h1 {
  font-size: var(--aft-type-hero-en);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.035em;
}

.site-page[lang="fa"] #services-title,
.site-page[lang="fa"] #ps1-title,
.site-page[lang="fa"] #about-title,
.site-page[lang="fa"] #news-title,
.site-page[lang="fa"] #catalog-title,
.site-page[lang="fa"] #faq-title,
.site-page[lang="fa"] #contact-title {
  font-size: var(--aft-type-section);
  font-weight: 700;
  line-height: 1.55;
}

.site-page[lang="en"] #services-title,
.site-page[lang="en"] #ps1-title,
.site-page[lang="en"] #about-title,
.site-page[lang="en"] #news-title,
.site-page[lang="en"] #catalog-title,
.site-page[lang="en"] #faq-title,
.site-page[lang="en"] #contact-title {
  font-size: clamp(1.875rem, 2.6vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.025em;
}

.site-page[lang="fa"] .service h3,
.site-page[lang="fa"] .service-catalog-grid h3 {
  font-size: var(--aft-type-card);
  font-weight: 700;
  line-height: 1.75;
}

.site-page[lang="en"] .service h3,
.site-page[lang="en"] .service-catalog-grid h3 {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.45;
}

.site-page[lang="fa"] .service p,
.site-page[lang="fa"] .section-intro,
.site-page[lang="fa"] .product-panel > p:not(.product-mark),
.site-page[lang="fa"] .contact-grid > div > p:not(.eyebrow) {
  font-size: var(--aft-type-body);
  line-height: 2;
}

.site-page[lang="fa"] .button,
.site-page[lang="fa"] .contact-submit,
.site-page[lang="fa"] .catalogue-download,
.site-page[lang="fa"] .hero-product-link {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
}

/* Standalone About, Resources and Cashflow pages. */
.aft-page,
.aft-resources-page,
html[lang="fa"] .aft-library-content,
html[lang="fa"] .cashflow-page {
  font-family: var(--aft-type-fa);
}

.aft-nav a,
.aft-resources-nav a,
.aft-library-nav a,
.home-link,
.download-button,
.secondary-download {
  font-weight: 600;
}

.aft-hero h1,
.aft-library-heading,
.aft-resources-copy h1,
.hero-copy h1 {
  font-family: var(--aft-type-fa);
  font-weight: 800;
  line-height: 1.5;
}

.aft-content-card h3,
.aft-step h3,
.aft-resource-card h2,
.step-grid h3,
.section-heading {
  font-family: var(--aft-type-fa);
  font-weight: 700;
  line-height: 1.65;
}

@media (max-width: 1120px) {
  .site-page[lang="fa"] .primary-nav .nav-trigger,
  .site-page[lang="fa"] .primary-nav .nav-direct,
  .site-page[lang="en"] .primary-nav .nav-trigger,
  .site-page[lang="en"] .primary-nav .nav-direct {
    font-size: 0.9375rem;
  }
}

@media (max-width: 600px) {
  :root {
    --aft-type-body: 1rem;
    --aft-type-card: 1.2rem;
    --aft-type-section: clamp(1.75rem, 8vw, 2rem);
    --aft-type-hero-fa: clamp(2.125rem, 10vw, 2.5rem);
    --aft-type-hero-en: clamp(2rem, 9vw, 2.375rem);
  }

  .site-page[lang="fa"] .hero h1,
  .aft-hero h1,
  .aft-library-heading,
  .aft-resources-copy h1,
  .hero-copy h1 {
    line-height: 1.55;
  }

  .site-page[lang="fa"] .service h3,
  .site-page[lang="fa"] .service-catalog-grid h3 {
    font-size: var(--aft-type-card);
    line-height: 1.75;
  }
}
