/* Content faces and role scale; page layouts and compact controls stay local. */
body {
  font-size: var(--ai-type-body-size);
  line-height: var(--ai-type-body-leading);
}

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

.ai-home-aligned .bannerarea .headertext h1,
.ai-page-hero h1,
.ai-service-hero h1,
.ai-services-index .ai-services-hero h1 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-page-size);
  font-weight: var(--ai-type-heading-weight);
  letter-spacing: var(--ai-type-heading-tracking);
  line-height: var(--ai-type-page-leading);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.ai-home-aligned .section-2 .headertext :is(h2,h3,h4),
.ai-home-aligned .projectsarea10 .headertext :is(h2,h3,h4),
.ai-home-aligned .headertext .home-section-title,
.ai-home-aligned .Getintouch .home-section-title,
.ai-home-aligned .home-project-cta h2,
.ai-home-aligned .home-voices__heading h2,
.ai-home-aligned .home-honours h2,
.ai-about .ai-about-richtext h2,
.ai-about .ai-about-proof__head h2,
.ai-about .ai-about-next h2,
.ai-about .ai-about-contact h2,
.ai-training .ai-training-intro .ai-training-richtext h2,
.ai-training .ai-training-focus__heading h2,
.ai-training .ai-training-next h2,
.ai-services-index .ai-services-intro h2,
.ai-services-index .ai-services-navigator h2,
.ai-services-index .ai-services-cta h2,
.single-our_services .ai-section-heading h2,
.single-our_services .ai-service-cta h2,
.ai-contact-cta h2,
.ai-careers .ai-careers-section-head .ai-careers-richtext h2,
.ai-careers .ai-careers-apply__intro h2,
.ai-careers-collage .ai-careers-youth__section-head h2,
.ai-careers-collage .ai-careers-youth__cta h2,
.ai-contact-page .contactleft > h2 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-section-size);
  font-weight: var(--ai-type-heading-weight);
  line-height: var(--ai-type-section-leading);
  letter-spacing: var(--ai-type-heading-tracking);
  margin-block: 0 var(--ai-type-section-gap);
  text-wrap: balance;
  overflow-wrap: break-word;
}

/* Feature titles live in narrower columns than full section introductions. */
.ai-home-aligned .home-video-gallery__intro h2,
.ai-about .ai-about-proof__copy :is(h2,h3,h4),
.ai-training .ai-training-program__copy h2,
.ai-services-index .ai-services-preview__content h3,
.ai-careers-collage .ai-careers-youth__role-profile h3,
.ai-contact-page .contactright > .ai-contact-page__title {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-feature-size);
  font-weight: var(--ai-type-heading-weight);
  line-height: var(--ai-type-feature-leading);
  letter-spacing: var(--ai-type-heading-tracking);
  margin-block: 0 var(--ai-type-card-gap);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.ai-home-aligned .phimg .home-project-title,
.ai-home-aligned .home-video-gallery__info h3,
.ai-about .ai-about-purpose__item .ai-about-richtext :is(h2,h3,h4),
.ai-services-index .ai-services-item h3,
.ai-careers-collage .ai-careers-youth__role-copy :is(h2,h3,h4),
.ai-careers-collage .ai-careers-youth__role-highlights h5 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-card-size);
  font-weight: var(--ai-type-card-weight);
  line-height: var(--ai-type-card-leading);
  letter-spacing: var(--ai-type-card-tracking);
  margin-block: 0 var(--ai-type-card-gap);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.ai-about .ai-about-team__label h3 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-compact-size);
  font-weight: var(--ai-type-card-weight);
  line-height: 1.25;
  letter-spacing: -.01em;
}

/* The Careers poster is a display composition, rather than a section title. */
.ai-careers-collage .ai-careers-collage__hero-content h2 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-display-size);
  font-weight: var(--ai-type-heading-weight);
  line-height: 1.02;
  letter-spacing: var(--ai-type-heading-tracking);
}

.ai-home-aligned .construction .home-section-title { max-width: 630px; }
.ai-home-aligned .headertext .home-section-title { color: var(--ai-color-ink); }
.ai-home-aligned .phimg .home-project-title { color: var(--ai-color-white); }
.ai-home-aligned .donations .Projectsarea .home-metric-value {
  margin: 0 0 .625rem;
  color: var(--ai-color-highlight);
  font-family: var(--ai-font-display);
  font-size: clamp(2.5rem, 4vw, 3.75rem);
  font-weight: var(--ai-type-card-weight);
  line-height: 1.1;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}
.ai-home-aligned .donations .Projectsarea p:not(.home-metric-value) {
  font-size: var(--ai-type-label-size);
  line-height: 1.5;
  letter-spacing: .04em;
}
.ai-home-aligned .section-4 .home-service-label { display: none; }
.ai-home-aligned .section-4 .oijhjiowerwr > .home-service-index {
  margin: 0;
  color: var(--ai-color-accent-inverse-soft);
  font: 600 var(--ai-type-label-size)/1.5 var(--ai-font-label);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ai-home-aligned .section-4 .ikdnwkehuihwer .oijhjiowerwr .servicetext > .home-service-title {
  /* The legacy card h3 is a rotated label; content titles stay in flow. */
  position: static;
  inset: auto;
  transform: none;
  opacity: 1;
  visibility: visible;
  margin: 0 0 1rem;
  color: var(--ai-color-white);
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-card-size);
  font-weight: var(--ai-type-card-weight);
  line-height: var(--ai-type-card-leading);
  letter-spacing: var(--ai-type-card-tracking);
  text-wrap: balance;
}
.ai-home-aligned .servicetext p,
.ai-home-aligned .home-video-gallery__caption > p,
.ai-home-aligned .bannerarea .headertext .ai-home-hero__lead,
.ai-page-hero .ai-page-hero__lead {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  font-weight: 400;
  line-height: var(--ai-type-body-leading);
  max-width: var(--ai-type-reading-measure);
}
.ai-home-aligned .headertext > p:not(.home-eyebrow):not(.ai-home-hero__eyebrow) {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  font-weight: 400;
  line-height: var(--ai-type-body-leading);
  max-width: var(--ai-type-reading-measure);
  margin-bottom: var(--ai-type-paragraph-gap);
}
.ai-home-aligned .bannerarea .headertext .ai-home-hero__eyebrow {
  font-size: var(--ai-type-label-size);
  line-height: 1.5;
  letter-spacing: .08em;
}
.ai-home-aligned .diweojrwer .home-contact-label {
  margin: 0 0 .5rem;
  color: var(--ai-color-ink);
  font: 600 var(--ai-type-label-size)/1.5 var(--ai-font-label);
  letter-spacing: .04em;
}
.ai-contact-page .contactright > .ai-contact-page__title {
  color: var(--ai-color-white);
}
.ai-contact-page .contactright > p {
  color: rgba(255,255,255,.85);
  font-size: var(--ai-type-body-size);
  line-height: 1.75;
  max-width: var(--ai-type-reading-measure);
}
.ai-contact-page .contactright .counter-body .ai-contact-page__label {
  margin: .125rem 0 .5rem;
  color: var(--ai-color-accent-inverse-soft);
  font: 600 var(--ai-type-label-size)/1.5 var(--ai-font-label);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ai-contact-page .contactright .counter-body .ai-contact-page__value,
.ai-contact-page .contactright .counter-body .ai-contact-page__value a {
  margin: 0;
  color: var(--ai-color-white);
  font-size: var(--ai-type-body-size);
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.ai-contact-page .contactleft .ai-contact-page__intro {
  font-size: var(--ai-type-body-size) !important;
  line-height: 1.75 !important;
  max-width: var(--ai-type-reading-measure);
}
.ai-contact-page .ai-contact-page__form :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),textarea,select),
.ai-home-aligned .Getintouch :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),textarea,select) {
  font-size: var(--ai-type-body-size);
  line-height: 1.5;
}
:is(.ai-contact-page,.ai-home-aligned .Getintouch) .ai-form-label {
  font-size: var(--ai-type-label-size);
  line-height: 1.5;
}
:is(.ai-contact-page,.ai-home-aligned .Getintouch) :is(.wpcf7-not-valid-tip,.wpcf7-response-output) {
  font-size: var(--ai-type-feedback-size);
  line-height: 1.5;
}

/* Supporting prose on the remaining surfaces uses the same reading role. */
.ai-about .ai-about-purpose__item .ai-about-richtext p,
.ai-about .ai-about-proof__copy p,
.ai-about .ai-about-contact__aside p,
.ai-about .ai-about-contact__inner > div > p:last-child,
.ai-about .ai-about-evolution__timeline span,
.ai-about .ai-about-experience__copy small,
.ai-about-modal .modal-body,
.ai-careers-work__item .ai-careers-richtext p,
.ai-careers-modal .modal-body,
.single-our_services .ai-standard-capability > p,
.single-our_services .ai-standard-capability li,
.single-our_services .ai-standard-method__steps p,
.single-our_services .ai-standard-focus__content .ai-prose p,
.single-our_services .ai-standard-overview__copy .ai-prose p,
.single-our_services .ai-standard-project__body > p:not(.ai-eyebrow),
.ai-services-item p,
.ai-case-scope__item p,
.ai-case-challenge p,
.ai-case-highlight p,
.ai-workflow__seo-note {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  font-weight: 400;
  line-height: var(--ai-type-body-leading);
}
.ai-case-highlight p,.ai-case-challenge p {
  color: rgba(255,255,255,.82);
  letter-spacing: .005em;
}
.ai-project-index .ai-project-index__intro > p {
  font-size: var(--ai-type-body-size);
  line-height: 1.75;
}
.ai-project-index__search-control input,
.ai-careers-application :is(input[type="text"],input[type="email"],input[type="tel"],select,textarea) {
  font-size: var(--ai-type-body-size);
  line-height: 1.5;
}
.ai-careers-application__consent,
.ai-careers-application-notice,
.ai-careers-application__upload label span {
  font-size: var(--ai-type-feedback-size);
  line-height: 1.6;
}
.ai-about .ai-about-richtext > p,
.ai-training .ai-training-richtext > p,
.ai-case-prose > p,
.ai-case-heading > div > p,
.ai-service-origin .ai-prose > p {
  max-width: var(--ai-type-reading-measure);
}
.ai-about .ai-about-richtext > p,
.ai-training .ai-training-richtext > p,
.single-our_services .ai-section-heading > p,
.single-our_services .ai-prose > :is(p,li),
.single-our_services .ai-service-origin .ai-prose > p {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  font-weight: 400;
  line-height: var(--ai-type-body-leading);
  max-width: var(--ai-type-reading-measure);
  overflow-wrap: break-word;
}
.ai-about .ai-about-richtext > p,
.ai-training .ai-training-richtext > p,
.single-our_services .ai-prose > p {
  margin-bottom: var(--ai-type-paragraph-gap);
}
.ai-about .ai-about-richtext > p:last-child,
.ai-training .ai-training-richtext > p:last-child,
.single-our_services .ai-prose > p:last-child {
  margin-bottom: 0;
}
.ai-training .ai-training-richtext h3,
.ai-training .ai-training-program__copy h3 {
  font-family: var(--ai-font-display);
  font-size: var(--ai-type-feature-size);
  font-weight: var(--ai-type-heading-weight);
  line-height: var(--ai-type-feature-leading);
  letter-spacing: var(--ai-type-heading-tracking);
  text-wrap: balance;
  overflow-wrap: break-word;
}
.ai-careers-collage .ai-careers-youth__role-copy,
.ai-careers-collage .career-story__copy > p,
.ai-careers-collage .career-path-description,
.ai-careers-collage .career-path-personal {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  font-weight: 400;
  line-height: var(--ai-type-body-leading);
}
.ai-careers-collage .ai-careers-youth__role-copy :is(p,li) {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.ai-careers-collage .ai-careers-youth__role-copy p {
  max-width: var(--ai-type-reading-measure);
  margin-bottom: var(--ai-type-paragraph-gap);
}
.ai-careers-collage .ai-careers-youth__role-copy :is(h2,h3,h4):not(:first-child) {
  margin-top: 2rem;
}
