/*
 * Public typography. Loaded after the visual styles so content remains readable
 * without changing the CMS-managed colors, page layouts or motion preferences.
 */

/* A steady reading size, with the existing display-heading hierarchy retained. */
body {
  font-size: 17px;
  line-height: 1.7;
}

.hero-intro,
.section-intro,
.home-services-section .section-intro,
.software-intro,
.software-section .section-intro,
.page-hero p:not(.eyebrow),
.managed-section .page-intro {
  font-size: 18px;
  line-height: 1.75;
}

.prose,
.about-story .prose,
.contact-details > .prose {
  font-size: 18px;
  line-height: 1.85;
}

.prose p,
.prose li {
  color: var(--muted);
}

/* Cards and supporting explanations need the same reading comfort as body copy. */
.service-copy p,
.home-service-card p,
.software-card-body p,
.work-card > p,
.work-meta p,
.article-card p,
.process-step p,
.value-card p,
.sidebar p,
.software-inquiry p,
.software-empty p,
.software-features li,
.software-features > p,
.contact-details > p:not(.eyebrow),
.contact-next p:not(.eyebrow),
details > p,
.notice {
  font-size: 16px;
  line-height: 1.75;
}

.home-service-card h3 {
  font-size: 20px;
  line-height: 1.3;
  min-height: 2.6em;
  overflow-wrap: anywhere;
}

.home-service-card p {
  min-height: 3.5em;
}

.software-card-body h2,
.software-card-body h3,
.article-card h3,
.work-meta h2,
.work-meta h3 {
  font-size: 25px;
  line-height: 1.25;
}

.process-step h3,
.value-card h3 {
  font-size: 24px;
  line-height: 1.3;
}

/* Navigation and actions stay easy to recognize and comfortably readable. */
.main-nav {
  font-size: 16px;
}

.button,
.text-link,
.software-actions .button,
.software-actions .text-link,
.software-actions .read-link,
.software-filter .button,
.software-inquiry > .button {
  font-size: 16px;
  line-height: 1.35;
}

.article-card .text-link,
.read-link,
.sidebar li a,
.sidebar-links > a,
.filter-link,
.pagination a,
.pagination span {
  font-size: 15px;
  line-height: 1.55;
}

/* Keep labels quieter than their content, without the former 8–11px type. */
.eyebrow,
.service-copy > .eyebrow,
.work-meta .eyebrow,
.sidebar > .eyebrow,
.sidebar-links > .eyebrow,
.contact-detail .eyebrow,
.contact-next .eyebrow,
.software-card-body .eyebrow,
.software-inquiry .eyebrow,
.software-empty .eyebrow,
.footer-grid .eyebrow {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: .11em;
}

.hero-note,
.hero-note-bottom,
.hero-caption,
.hero-copy .hero-caption,
.breadcrumbs,
.article-meta,
.article-card .article-meta,
.page-hero .article-meta,
.software-specs dt,
.software-results,
.tag,
.software-card-tags > span,
.software-card-tags > .tag,
.concept-note,
.work-badge,
.software-card-badge,
.brand-subline,
.brand small {
  font-size: 13px;
  line-height: 1.65;
}

.hero-note,
.hero-caption,
.hero-copy .hero-caption,
.breadcrumbs,
.concept-note,
.software-results {
  color: var(--muted);
}

.service-number,
.home-service-corner > span,
.process-step > span,
.article-art-number,
.value-card > span {
  font-size: 13px;
}

.strip-inner .strip-item,
.strip-inner .strip-item > .strip-item-copy {
  font-size: 16px;
  line-height: 1.5;
}

.strip-item-copy small {
  font-size: 14px;
  line-height: 1.6;
}

.software-specs dd,
.software-card-body .software-card-price,
.stat span,
.stat p,
.contact-person span {
  font-size: 16px;
  line-height: 1.7;
}

/* Readable forms; a 16px minimum also avoids automatic mobile input zoom. */
.field label,
.software-filter label {
  font-size: 15px;
  line-height: 1.5;
}

.field input:not([type="checkbox"]):not([type="radio"]),
.field select,
.field textarea,
.software-filter input,
.software-filter select {
  font-size: 16px;
  line-height: 1.5;
}

.field small,
.field-hint,
.field-checkbox label,
.form-privacy,
.form-required {
  font-size: 14px;
  line-height: 1.65;
}

.form-feedback {
  font-size: 16px;
  line-height: 1.65;
}

table {
  font-size: 16px;
  line-height: 1.7;
}

th {
  font-size: 14px;
  line-height: 1.5;
}

.contact-details p,
.contact-details a,
.contact-detail > a {
  font-size: 18px;
}

/* Footer text and the full service directory are content, not decoration. */
.footer-grid p,
.footer-links,
.footer-service-link {
  font-size: 16px;
  line-height: 1.75;
}

.footer-grid p {
  color: var(--muted);
}

.footer-grid h3,
.footer-grid h4 {
  font-size: 14px;
  line-height: 1.5;
}

.footer-grid .footer-location {
  font-size: 15px !important; /* Overrides the original location-only rule. */
  color: var(--muted) !important;
}

.footer-bottom {
  font-size: 13px;
  line-height: 1.65;
  color: var(--muted);
}

/* Additional business and enquiry sections follow the same copy scale. */
.growth-section p:not(.eyebrow),
.project-start-section p:not(.eyebrow),
.home-faq p:not(.eyebrow) {
  font-size: 17px;
  line-height: 1.75;
}

.home-faq summary {
  font-size: 19px;
  line-height: 1.45;
}

/* Smaller screens retain readable forms and the compact two-column service grid. */
@media (max-width: 860px) {
  .home-service-card h3 {
    font-size: 19px;
  }
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
  }

  .hero-intro,
  .section-intro,
  .home-services-section .section-intro,
  .software-intro,
  .software-section .section-intro,
  .page-hero p:not(.eyebrow),
  .managed-section .page-intro,
  .prose,
  .about-story .prose,
  .contact-details > .prose {
    font-size: 16px;
    line-height: 1.75;
  }

  .home-service-card h3 {
    font-size: 17px;
    line-height: 1.3;
  }

  .home-service-card p {
    font-size: 14px;
    line-height: 1.6;
    min-height: 3.2em;
  }

  .software-card-body h2,
  .software-card-body h3,
  .article-card h3,
  .work-meta h2,
  .work-meta h3 {
    font-size: 23px;
  }

  .eyebrow,
  .service-copy > .eyebrow,
  .work-meta .eyebrow,
  .sidebar > .eyebrow,
  .sidebar-links > .eyebrow,
  .contact-detail .eyebrow,
  .contact-next .eyebrow,
  .software-card-body .eyebrow,
  .software-inquiry .eyebrow,
  .software-empty .eyebrow,
  .footer-grid .eyebrow {
    font-size: 12px;
    letter-spacing: .09em;
  }

  .strip-inner .strip-item,
  .strip-inner .strip-item > .strip-item-copy,
  .footer-grid p,
  .footer-links,
  .footer-service-link {
    font-size: 15px;
  }

  .growth-section p:not(.eyebrow),
  .project-start-section p:not(.eyebrow),
  .home-faq p:not(.eyebrow) {
    font-size: 16px;
  }

  .home-faq summary {
    font-size: 18px;
  }
}
