/* Field Chronicle: a slightly quieter default type scale.
 * Keep selectors below the explicit Elementor typography-control selectors in
 * inc/elementor-typography.php, so widget-specific sizes remain authoritative.
 * Spacing, typefaces, form-input sizes and interactive hit areas are unchanged.
 */
body.family-field {
  --tpi-refined-copy-size: calc(var(--tpi-paragraph-size, 16px) * 0.9375);
  --tpi-caption-size: 14px;
  font-size: calc(var(--tpi-body-size, 16px) * 0.9375);
}

body.family-field h1,
body.family-field .field-hero h1,
body.family-field .field-page-hero h1 {
  font-size: clamp(2.925rem, 5.5vw, calc(var(--tpi-h1-max, 60px) * 0.9)) !important;
}
body.family-field h2 {
  font-size: clamp(2.025rem, 3.24vw, calc(var(--tpi-h2-max, 42px) * 0.9)) !important;
}
body.family-field h3 {
  font-size: clamp(1.2rem, 1.665vw, calc(var(--tpi-h3-max, 26px) * 0.925)) !important;
}
body.family-field .field-reason-cards h2 {
  font-size: clamp(1.5rem, 2vw, calc(var(--tpi-h3-max, 26px) * 0.925)) !important;
}
body.family-field .field-capabilities--page .field-manifesto h2 {
  font-size: clamp(28px, 2.4vw, 36px) !important;
}
body.family-field .field-process--about .field-process__line--five h3 {
  font-size: clamp(20px, 1.665vw, 25px) !important;
}
body.family-field .field-office-card h3 { font-size: 22px !important; }
body.family-field :is(.tpi-inquiry, .form-grid) :is(input:not([type="file"]), select, textarea) {
  font-size: 16px;
}

body.family-field :is(p, li, dt, dd, blockquote, .elementor-widget-text-editor):not(:where(.tpi-inquiry__hint, .tpi-inquiry__privacy)) {
  font-size: var(--tpi-refined-copy-size) !important;
}
body.family-field :is(.primary-navigation, .primary-navigation a,
  .tpi-language-switcher a, .tpi-language-switcher__code,
  .button, .button span, .header-enquiry, .header-enquiry span,
  .elementor-button, .elementor-button-text, button[type="submit"]) {
  font-size: 15px !important;
}
body.family-field :is(.button, .header-enquiry, button[type="submit"]) :is(.elementor-button-text, span) {
  font-size: 15px !important;
}
body.family-field :is(small, .eyebrow, figcaption, .tpi-native-tag-figcaption,
  .field-photo-strip__caption, .field-about-story__location, .field-company__web) {
  font-size: 14px !important;
}
body.family-field .field-photo-strip .tpi-native-tag-figcaption { --tpi-caption-size: 14px; }
body.family-field .field-faq :is(summary, .elementor-toggle-title) { font-size: 15px; }
body.family-field :is(.field-about-hero__meta, .field-about-purpose__grid article,
  .field-company__copy, .field-about-contact__details) span {
  font-size: 14px !important;
}

/* The image-led About layout has its own, larger editorial scale. */
@media (min-width: 768px) {
  body.family-field .ac-section .ac-hero-copy h1 { font-size: clamp(43px, 4.5vw, 72px) !important; }
  body.family-field .ac-section h2 { font-size: clamp(34px, 4.14vw, 63px) !important; }
  body.family-field .ac-section .ac-story-copy h2 { font-size: clamp(41px, 5.22vw, 79px) !important; }
  body.family-field .ac-section .ac-contact-grid h2 { font-size: clamp(45px, 6.39vw, 97px) !important; }
  body.family-field .ac-section h3 { font-size: clamp(21px, 1.85vw, 28px) !important; }
  body.family-field .ac-section .ac-purpose-grid h3 { font-size: clamp(29px, 2.88vw, 43px) !important; }
  body.family-field .ac-section .ac-expert h3 { font-size: clamp(20px, 1.7vw, 26px) !important; }
  body.family-field .ac-section .ac-step h3 { font-size: 20px !important; }
  body.family-field .ac-section p { font-size: 17px !important; }
  body.family-field .ac-section .ac-lead { font-size: clamp(20px, 1.85vw, 27px) !important; }
  body.family-field .ac-section .ac-disciplines p { font-size: 21px !important; }
  body.family-field .ac-section .ac-purpose-grid p:last-child { font-size: clamp(20px, 2vw, 29px) !important; }
  body.family-field .ac-section .ac-section-top > p { font-size: 20px !important; }
  body.family-field .ac-section .ac-expert > p:last-child { font-size: 15px !important; }
  body.family-field .ac-section .ac-company p { font-size: 16px !important; }
  body.family-field .ac-section .ac-contact-details p { font-size: 17px !important; }
  body.family-field .ac-section .ac-step-number { font-size: 60px !important; }
  body.family-field .ac-section .elementor-toggle .elementor-tab-title { font-size: 22px; }
}
@media (max-width: 767px) {
  body.family-field .ac-section.tpi-mobile-about p { font-size: 15px !important; }
  body.family-field .ac-section.tpi-mobile-about .ac-lead { font-size: 19px !important; }
  body.family-field .ac-section.tpi-mobile-about .ac-purpose-grid p:last-child { font-size: 17px !important; }
  body.family-field .ac-section.tpi-mobile-about .ac-hero-copy h1 { font-size: clamp(30px, 8.3vw, 37px) !important; }
  body.family-field .ac-section.tpi-mobile-about h2 { font-size: clamp(26px, 7.4vw, 34px) !important; }
  body.family-field .ac-section.tpi-mobile-about .ac-story-copy h2 { font-size: 30px !important; }
  body.family-field .ac-section.tpi-mobile-about .ac-contact-grid h2 { font-size: 32px !important; }
}
body.family-field :is(.site-footer p:not(.eyebrow), .site-footer a,
  .site-footer span, .site-footer small) {
  font-size: 15px !important;
}
body.family-field .site-footer .site-footer__top h2.eyebrow,
body.elementor-editor-active.family-field .site-footer__top .elementor-widget-heading.eyebrow h2,
body.family-field .site-footer :is(.eyebrow, .footer-index, .site-footer__bottom,
  .site-footer__bottom span) {
  font-size: 14px !important;
}

@media (min-width: 901px) and (max-width: 1200px) {
  body.family-field h1 {
    font-size: calc(min(var(--tpi-h1-max), var(--tpi-h1-tablet)) * 0.9) !important;
  }
  body.family-field h2 {
    font-size: calc(min(var(--tpi-h2-max), var(--tpi-h2-tablet)) * 0.9) !important;
  }
}
@media (max-width: 900px) {
  body.family-field h1,
  body.family-field .field-hero h1,
  body.family-field .field-page-hero h1 {
    font-size: calc(min(var(--tpi-h1-max), var(--tpi-h1-mobile)) * 0.92) !important;
  }
  body.family-field h2,
  body.family-field .field-start-sheet aside h2 {
    font-size: calc(min(var(--tpi-h2-max), var(--tpi-h2-mobile)) * 0.933333) !important;
  }
  body.family-field h3 {
    font-size: calc(min(var(--tpi-h3-max), var(--tpi-h3-mobile)) * 0.925) !important;
  }
}
