/* Shared font faces, semantic type and existing heading/formatting primitives. */
@font-face {
  font-family: "Zalando Sans";
  src: url("../fonts/zalando-sans-variable.woff2") format("woff2-variations");
  font-display: swap;
  font-style: oblique 0deg 12deg;
  font-weight: 200 900;
  font-stretch: 75% 125%;
}
@font-face {
  font-family: "Nunito";
  src: url("../fonts/nunito-variable.ttf") format("truetype-variations");
  font-display: swap;
  font-style: normal;
  font-weight: 200 1000;
}

@font-face {
  font-family: "Nunito";
  src: url("../fonts/nunito-variable-italic.ttf") format("truetype-variations");
  font-display: swap;
  font-style: italic;
  font-weight: 200 1000;
}

html,
body {
  font-family: var(--font-body);
  font-stretch: normal;
  font-weight: var(--fs-weight-medium);
  font-synthesis: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-stretch: semi-expanded;
  /* Semantic headings outrank generated font-weight utility classes. */
  font-weight: 900 !important;
}

:where(
  .heading-size-xs,
  .heading-size-sm,
  .heading-size-md,
  .heading-size-lg,
  .heading-size-xl,
  .portal__title
) {
  font-stretch: semi-expanded;
}

:where(
  button,
  label,
  summary,
  nav a,
  [role="button"],
  input[type="button"],
  input[type="reset"],
  input[type="submit"],
  .fs-button,
  .fs-eyebrow,
  .gh-article-tag,
  .content-card__action,
  .account-dialog-portal,
  .account-dialog__action,
  .error-page__kicker,
  .portal-kicker,
  .portal-control__label,
  .portal-card__action-label,
  .portal-filter-button,
  .portal-filter-chip,
  .portal-filter-reset,
  .portal-modal__action,
  .portal-modal__nav,
  .portal-modal__section-action,
  .portal-modal__stage-download-link,
  .service-post-kicker,
  .service-post-hero__eyebrow,
  .work-post-hero__eyebrow,
  .approach-step-label
) {
  font-stretch: semi-expanded;
}

input:not([type="button"]):not([type="reset"]):not([type="submit"]),
textarea,
select {
  font-stretch: normal;
}

strong,
b {
  font-weight: 700;
}

em,
i {
  font-style: italic;
}

html {
  font-size: 100%;
}

body {
  font-size: var(--fs-font-base);
  line-height: var(--fs-line-base);
}

.heading-size-xs {
  font-size: var(--fs-font-heading-xs);
  line-height: var(--fs-line-snug);
  font-weight: var(--fs-weight-semibold);
}

.heading-size-sm {
  font-size: var(--fs-font-heading-sm);
  line-height: var(--fs-line-snug);
  font-weight: var(--fs-weight-semibold);
}

.heading-size-md {
  font-size: var(--fs-font-heading-md);
  line-height: 1.2;
  font-weight: var(--fs-weight-semibold);
}

.heading-size-lg {
  font-size: var(--fs-font-heading-lg);
  line-height: var(--fs-line-heading);
  font-weight: var(--fs-weight-semibold);
}

.heading-size-xl {
  font-size: var(--fs-font-heading-xl);
  line-height: var(--fs-line-tight);
  font-weight: var(--fs-weight-semibold);
}

.fs-formatting {
  text-wrap: pretty;
}

.block-heading {
  text-wrap: balance;
}

.gh-article-excerpt,
.section-cards p {
  line-height: var(--fs-line-relaxed);
}
