/* Shared published/editor typography, Field theme only. */
body.family-field,
body.family-field :is(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,summary,small,strong,em,li,dt,dd,figcaption,blockquote,span:not(.dashicons),.elementor-widget-text-editor,.elementor-heading-title):not(:where(.tpi-editable-services *)) {
  font-family: Montserrat, Arial, sans-serif !important;
}
body.family-field :is(h1,h2,h3,h4,h5,h6):not(:where(.tpi-editable-services *)) {
  line-height: 1.2 !important;
  letter-spacing: -.025em;
  text-transform: none !important;
  overflow-wrap: break-word;
}
body.family-field h1 { text-wrap: balance; }
body.family-field :is(.button,.primary-navigation a,.eyebrow,.tpi-language-switcher a) {
  text-transform: none;
  letter-spacing: .015em !important;
}
body.family-field :is(.field-capability-index article,.field-process__line li,.field-start-steps li,.field-story-grid article,.field-about-fields article) { min-width: 0; }
body.family-field .field-hero__copy { min-width: 0; }
body.family-field .field-hero h1 { width: auto; max-width: 100%; margin-left: 0; letter-spacing: -.035em; }
body.family-field .field-hero h1 span { overflow-wrap: normal; }
body.family-field .site-header .brand { gap: 0; }
body.family-field :is(.brand,.footer-brand) img,
body.family-field .tpi-logo-set img {
  padding: 0;
  background: transparent !important;
  object-fit: contain;
}
html[data-theme='dark'] body.family-field :is(.brand,.footer-brand) img,
html[data-theme='dark'] body.family-field .tpi-logo-set img {
  filter: invert(1) hue-rotate(180deg);
}
body.family-field .field-page-hero h1 { font-size: min(var(--tpi-h1-max), 58px) !important; }
body.family-field :is(.field-page-hero,.field-hero) :is(.button,.button-row) { max-width: 100%; }
body.family-field .field-start-sheet__layout { grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 64px; }
body.family-field .field-start-sheet__layout > *,
body.family-field .field-contact-sheet__layout > * { min-width: 0; }
body.family-field .field-start-sheet__layout .elementor-widget-shortcode,
body.family-field .field-contact-sheet__layout .elementor-widget-shortcode { width: 100%; }
body.family-field :is(small,.eyebrow) { font-size: 16px !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 { font-size:16px !important; }
body.family-field .field-contact-sheet :is(dd,.tpi-native-tag-dd) { min-width:0; overflow-wrap:anywhere; }
body.family-field .field-contact-sheet a[href^='mailto:'] { overflow-wrap:anywhere; word-break:break-word; }
body.family-field .tpi-office-map { width:100%; margin-top:24px; }
body.family-field .tpi-office-map iframe { display:block; width:100%; height:260px; border:0; }
body.family-field :is(.field-about-hero__meta,.field-about-purpose__grid article,.field-company__copy,.field-about-contact__details) span,
body.family-field :is(.field-about-story__location,.field-company__web) { font-size:16px !important; }
@media (min-width:1120px) {
  body.family-field .site-header__inner { grid-template-columns: 140px minmax(0,1fr) auto; gap: 24px; }
  body.family-field .primary-navigation { gap: 24px !important; }
}
@media (max-width:900px) {
  body.family-field :is(.field-start-sheet__layout,.field-contact-sheet__layout) { grid-template-columns: minmax(0,1fr); gap: 32px; }
  body.family-field .field-page-hero h1 { font-size: min(var(--tpi-h1-mobile), 38px) !important; }
  body.family-field .field-hero__grid { display:flex; flex-direction:column; align-items:stretch; min-height:0; }
  body.family-field .field-note { position:relative; inset:auto; width:100%; max-width:480px; align-self:flex-end; margin:0 0 32px; transform:none; }
}
@media (max-width:1119px) {
  body.family-field .site-header__inner { grid-template-columns:minmax(0,1fr) 72px 38px 38px !important; gap:8px; }
  body.family-field .site-header .tpi-language-switcher-widget { display:block !important; min-width:72px; width:72px !important; grid-column:2; grid-row:1; }
  body.family-field .site-header .tpi-language-switcher-widget > .elementor-widget-container { display:block !important; }
  body.family-field .site-header .theme-toggle { grid-column:3; grid-row:1; }
  body.family-field .site-header .menu-toggle { grid-column:4; grid-row:1; }
}
@media (max-width:720px) {
  body.family-field .field-hero h1 { font-size: 38px !important; line-height: 1.15 !important; }
  body.family-field .field-hero__copy { padding-block: 42px; }
  body.family-field .field-start-sheet aside h2 { font-size: 30px !important; }
}
