/* Project roles follow the established display, reading and label faces. */
.single-our_projects .ai-page-hero h1 {
  font-size: var(--ai-type-page-size);
  font-weight: var(--ai-type-heading-weight);
  line-height: var(--ai-type-page-leading);
  letter-spacing: var(--ai-type-heading-tracking);
  text-wrap: balance;
  overflow-wrap: break-word;
}
.ai-case-study .ai-case-heading h2,
.ai-case-study .ai-case-cta 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;
}
.ai-case-study .ai-case-prose {
  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-study .ai-case-prose :is(p,li) {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  max-width: var(--ai-type-reading-measure);
  overflow-wrap: break-word;
}
.ai-case-study .ai-case-prose p { margin-block: 0 var(--ai-type-paragraph-gap); }
.ai-case-study .ai-case-prose p:last-child { margin-bottom: 0; }
.ai-case-study .ai-case-prose :is(ul,ol) {
  max-width: var(--ai-type-reading-measure);
}
.ai-case-study .ai-case-heading > div {
  font-family: var(--ai-font-body);
  font-size: var(--ai-type-body-size);
  line-height: var(--ai-type-body-leading);
  max-width: var(--ai-type-reading-measure);
  overflow-wrap: break-word;
}
.ai-case-study .ai-case-heading > div > p {
  font-size: inherit;
  line-height: inherit;
}
.ai-case-study .ai-case-prose h3,
.ai-case-study .ai-case-scope__item h3,
.ai-case-study .ai-case-challenge h3 {
  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-case-study .ai-case-prose h3 { margin-block: 2rem 1rem; }
.ai-case-study .ai-case-prose h3:first-child { margin-top: 0; }
.ai-case-study .ai-case-facts span,
.ai-case-study .ai-case-heading > p,
.ai-case-study .ai-case-story__panel span,
.ai-case-study .ai-case-details dt {
  font-family: var(--ai-font-label);
  font-size: var(--ai-type-label-size);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  overflow-wrap: break-word;
}
.ai-case-study .ai-case-facts strong,
.ai-case-study .ai-case-details dd {
  font-size: var(--ai-type-body-size);
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.ai-case-study .ai-case-details summary { font-size: 1.0625rem; line-height: 1.5; }
.ai-case-study .ai-case-highlight strong {
  font-size: clamp(2.25rem, 3vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}
.ai-case-study .ai-case-highlight.has-long-value strong {
  font-size: clamp(1.5rem, 1.8vw, 1.6875rem);
  line-height: 1.2;
  letter-spacing: -.02em;
}
.ai-case-study .ai-case-challenge strong {
  font-size: clamp(1.875rem, 2.5vw, 2.625rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  white-space: normal;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}
.ai-case-study .ai-case-filters button,
.ai-case-study .ai-case-gallery__load-more,
.ai-case-study .ai-case-project-footer a {
  font-size: var(--ai-type-control-size);
  line-height: 1.5;
}
.ai-project-index .ai-project-index__intro h2,
.ai-project-index .ai-project-index__toolbar 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;
}
.ai-project-index .ai-project-card__title {
  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;
  overflow-wrap: break-word;
}
.ai-project-index .ai-project-card__type,
.ai-project-index .ai-project-index__filters button {
  font-family: var(--ai-font-label);
  font-size: var(--ai-type-label-size);
  font-weight: 600;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: break-word;
}
.ai-project-index .ai-project-card__meta { line-height: 1.5; }
/* Let the real captions set the minimum size of each masonry row. */
.ai-project-index .ai-project-masonry-group.is-complete {
  grid-template-rows: repeat(6, minmax(clamp(58px, 5vw, 76px), 1fr));
}
.ai-project-index .ai-project-card { min-height: min-content; }
.ai-project-index .ai-project-card > a { display: flex; min-height: 100%; }
.ai-project-index .ai-project-card__content {
  position: relative;
  inset: auto;
  flex: 1;
  height: auto;
  min-height: 100%;
  gap: 1rem;
}
@media (max-width: 700px) {
  .ai-case-study .ai-case-prose,
  .ai-case-study .ai-case-heading > div,
  .ai-case-study .ai-case-details summary { font-size: var(--ai-type-body-size); }
  .ai-case-study .ai-case-highlight strong { font-size: clamp(3rem, 15vw, 4rem); }
  .ai-case-study .ai-case-highlight.has-long-value strong { font-size: 1.5rem; }
  .ai-project-index .ai-project-masonry-group,
  .ai-project-index .ai-project-masonry-group.is-complete { grid-template-columns: 1fr; grid-template-rows: none; }
  .ai-project-index .ai-project-masonry-group .ai-project-card { grid-column: 1 !important; grid-row: auto !important; aspect-ratio: auto !important; }
  .ai-project-index .ai-project-card > a { display: grid; height: auto; min-height: 0; }
  .ai-project-index .ai-project-card > a::before { content: ""; grid-area: 1 / 1; padding-top: calc(100% / 1.24); }
  .ai-project-index .ai-project-card__content { grid-area: 1 / 1; min-height: 0; }
}
.ai-project-index .ai-project-card__meta { overflow-wrap: anywhere; }
@media (min-width: 701px) {
  .ai-project-index .ai-project-masonry-group.is-remainder-1 { grid-template-rows: minmax(clamp(240px,28vw,390px), auto); }
  .ai-project-index .ai-project-masonry-group.is-remainder-2 { grid-template-rows: minmax(clamp(260px,27vw,380px), auto); }
  .ai-project-index .ai-project-masonry-group.is-remainder-3 { grid-template-rows: repeat(2, minmax(clamp(150px,14vw,200px), auto)); }
  .ai-project-index .ai-project-masonry-group.is-remainder-4 { grid-template-rows: repeat(2, minmax(clamp(190px,19vw,270px), auto)); }
}
