/* Unified typography system: native SF Pro on Apple, restrained system fallbacks elsewhere. */
:root {
  --font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
  --font-display: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --type-display: clamp(58px, 5.2vw, 78px);
  --type-section: clamp(44px, 4.4vw, 64px);
  --type-card: 24px;
  --type-body: 16px;
  --type-lead: 18px;
  --type-label: 13px;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 600;
}

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

h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
}

body {
  font-size: 16px;
  line-height: 1.6;
  font-weight: var(--weight-regular);
}

strong,
b {
  font-weight: var(--weight-semibold);
}

.eyebrow,
.kicker,
.service-label,
.solution-type,
.journey-outcome > span,
.reasons-title,
.contact-row > span,
.contact-row-inline span,
.service-model-card > span,
.service-input-card > span,
.service-index,
.direction-links > a > span,
.workflow-steps > li > span,
.model-links-grid span,
.reasons-grid article > span,
.service-process li > b,
.direction-work-grid span,
.direction-package-grid span,
.document-viewer-stage figcaption span {
  font-size: var(--type-label);
  line-height: 1.3;
  font-weight: var(--weight-medium);
  letter-spacing: .02em;
}

.hero h1,
.service-hero h1,
.direction-hero h1 {
  font-size: var(--type-display);
  line-height: .94;
  font-weight: var(--weight-bold);
  letter-spacing: -.035em;
}

.theses-heading h2,
.section-heading h2,
.workflow h2,
.company h2,
.contact-section h2,
.trust-heading h2,
.model-links-heading h2,
.content-heading h2,
.journey-heading h2,
.service-content-section h2,
.service-process h2,
.service-other h2,
.service-cta h2,
.direction-section-heading h2,
.direction-packages-heading h2 {
  font-size: var(--type-section);
  line-height: 1.02;
  font-weight: var(--weight-medium);
  letter-spacing: -.025em;
}

.hero-offer,
.hero-included,
.service-subject,
.service-offer,
.direction-hero-copy > p,
.section-heading > p,
.content-heading > p,
.journey-heading > p,
.trust-heading > p,
.direction-section-heading > p,
.direction-packages-heading > p,
.contact-main > p {
  font-size: var(--type-lead);
  line-height: 1.55;
  font-weight: var(--weight-regular);
}

.company-lead,
.service-description-lead {
  font-size: var(--type-lead);
  line-height: 1.55;
  font-weight: var(--weight-regular);
}

.hero .eyebrow,
.hero h1,
.hero h1 em,
.hero-offer,
.hero-included,
.hero-lead {
  color: #f7fbfd;
}

.hero h1 em {
  color: inherit;
}

.hero-included {
  max-width: 760px;
  margin: 8px 0 0;
  font-size: var(--type-body);
  line-height: 1.5;
  font-weight: var(--weight-regular);
}

.theses-grid h3,
.service-content h3,
.solution-copy h3,
.workflow-steps h3,
.journey-stages h3,
.equipment-panel h3,
.reasons-grid h3,
.service-process h3,
.direction-work-grid h3,
.direction-package-grid h3 {
  font-size: var(--type-card);
  line-height: 1.18;
  font-weight: var(--weight-medium);
  letter-spacing: -.015em;
}

.theses-grid h3 {
  font-weight: var(--weight-regular);
  letter-spacing: 0;
}

.hero-lead,
.service-content p,
.solution-copy p,
.workflow-intro > p,
.workflow-steps p,
.journey-stages p,
.equipment-panel-content p,
.direction-links p,
.company-copy > p,
.reasons-grid p,
.service-model-card p,
.service-input-card p,
.service-process-heading p,
.service-process p,
.service-cta p,
.direction-work-grid p {
  font-size: var(--type-body);
  line-height: 1.6;
  font-weight: var(--weight-regular);
}

.button,
.desktop-nav a,
.service-header nav a,
.text-link,
.service-content a,
.solution-copy a,
.journey-outcome > a,
.company-links a,
.company-links button,
.service-other nav a {
  font-size: 15px;
  font-weight: var(--weight-medium);
}

.service-content li,
.document-card i {
  font-weight: var(--weight-medium);
}

.header-contact a,
.service-header-phone {
  font-weight: var(--weight-medium);
}

.proof-intro span,
.hero-clients h2,
.footer-nav h3,
.document-group-title span {
  font-weight: var(--weight-medium);
  letter-spacing: .02em;
}

.hero-clients h2 {
  font-weight: var(--weight-regular);
  letter-spacing: 0;
  text-transform: none;
}

.proof-intro strong {
  font-size: 28px;
  line-height: 1.2;
  font-weight: var(--weight-medium);
  letter-spacing: -.015em;
}

.proof-metrics strong,
.number-item strong {
  font-weight: var(--weight-bold);
  letter-spacing: -.025em;
}

.proof-metrics span,
.number-item span,
.service-facts span,
.direction-facts p {
  font-size: 14px;
  line-height: 1.4;
  font-weight: var(--weight-regular);
}

.service-facts strong,
.direction-facts h2,
.model-links-grid b,
.direction-links b,
.service-model-card strong,
.direction-visual-panel strong {
  font-weight: var(--weight-medium);
  letter-spacing: -.01em;
}

.document-group-title h3 {
  font-size: 30px;
  line-height: 1.15;
  font-weight: var(--weight-medium);
  letter-spacing: -.02em;
}

.document-card b {
  font-size: 15px;
  line-height: 1.4;
  font-weight: var(--weight-medium);
}

.contact-phone,
.service-cta-phone,
.modal-phone {
  font-weight: var(--weight-medium);
  letter-spacing: -.02em;
}

.contact-row p {
  font-size: 20px;
  line-height: 1.4;
  font-weight: var(--weight-medium);
}

.contact-row-inline p {
  font-size: 16px;
  font-weight: var(--weight-regular);
}

.lead-modal h2 {
  font-size: 36px;
  line-height: 1.08;
  font-weight: var(--weight-medium);
  letter-spacing: -.02em;
}

.lead-modal > p {
  font-size: 16px;
  line-height: 1.6;
}

.footer-brand > p,
.footer-nav a,
.footer-bottom,
.bank-details,
.service-footer p {
  font-size: 15px;
  line-height: 1.55;
  font-weight: var(--weight-regular);
}

@media (max-width: 700px) {
  :root {
    --type-display: clamp(38px, 10vw, 42px);
    --type-section: clamp(32px, 8.6vw, 36px);
    --type-card: 20px;
    --type-body: 16px;
    --type-lead: 18px;
    --type-label: 12px;
  }

  body {
    font-size: 16px;
    line-height: 1.55;
  }

  .eyebrow,
  .kicker,
  .service-label,
  .solution-type,
  .journey-outcome > span,
  .reasons-title {
    line-height: 1.35;
    font-weight: var(--weight-medium);
    letter-spacing: .02em;
  }

  .hero h1,
  .service-hero h1,
  .direction-hero h1 {
    line-height: .95;
    letter-spacing: -.03em;
  }

  .hero-offer,
  .service-subject,
  .service-offer,
  .direction-hero-copy > p {
    font-size: 18px;
    line-height: 1.45;
  }

  .content-heading > p,
  .journey-heading > p,
  .section-heading > p,
  .trust-heading > p,
  .direction-section-heading > p,
  .direction-packages-heading > p {
    font-size: 16px;
    line-height: 1.55;
  }

  .hero-clients h2 {
    font-size: 14px;
    line-height: 1.2;
    font-weight: var(--weight-regular);
  }

  .theses-grid h3 {
    font-size: 20px;
    line-height: 1.28;
  }

  .proof-intro strong {
    font-size: 24px;
    line-height: 1.2;
  }

  .proof-metrics strong {
    font-size: 32px;
  }

  .proof-metrics span {
    font-size: 13px;
    line-height: 1.35;
  }

  .solution-copy h3,
  .equipment-panel h3,
  .service-process h3,
  .direction-work-grid h3,
  .direction-package-grid h3 {
    font-size: 20px;
    line-height: 1.2;
  }

  .workflow-steps h3,
  .journey-stages h3,
  .reasons-grid h3 {
    font-size: 20px;
    line-height: 1.22;
  }

  .document-group-title h3 {
    font-size: 24px;
  }

  .service-description-lead {
    font-size: 18px;
    line-height: 1.55;
  }

  .mobile-menu a {
    font-size: 20px;
    font-weight: var(--weight-medium);
  }

  .lead-modal h2 {
    font-size: 32px;
  }

  .service-cta-phone {
    font-size: 28px;
    font-weight: var(--weight-medium);
  }

  .mobile-call-bar > div > span {
    font-size: 14px;
    font-weight: var(--weight-medium);
  }

  .mobile-call-bar b {
    font-size: 12px;
    font-weight: var(--weight-medium);
  }

  .mobile-call-bar a span {
    font-size: 16px;
    font-weight: var(--weight-regular);
    letter-spacing: 0;
  }

  .footer-nav h3 {
    font-size: 14px;
  }

  .footer-nav a,
  .footer-bottom,
  .bank-details {
    font-size: 15px;
    line-height: 1.5;
  }
}
