
.case-hero {
  display: block;
  background-color: var(--color-paper);
  color: var(--color-ink);
}

.case-hero__inner {
  display: grid;
  grid-template-columns: repeat(24, [col] 1fr);
  column-gap: var(--grid-gap);
  padding: 12.5rem var(--container-padding) 4rem;
  animation: case-fadein 1s ease-in 0s forwards;
}

.case-hero__title {
  grid-column: span 19;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 8.5rem;
  line-height: 1.1;
  letter-spacing: -2px;
}

.case-hero__tags {
  grid-column: 21 / span 4;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  row-gap: 0.875rem;
  margin: 0 0 1rem;
  font-family: var(--font-sans);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.case-hero__tag { font-size: 1rem; }

.case-hero__tag--label { font-size: 0.75rem; }

@keyframes case-fadein {
  from { opacity: 0; visibility: hidden; }
  to { opacity: 1; visibility: visible; }
}

.case-media {
  display: block;
  margin-bottom: 4rem;
}

.case-media__img {
  display: block;
  width: 100%;
  height: auto;
}

.case-text {
  display: grid;
  grid-template-columns: repeat(24, [col] 1fr);
  column-gap: var(--grid-gap);
  padding-inline: var(--container-padding);
  margin-bottom: 4rem;
}

.case-text__body {
  grid-column: 12 / span 12;
  font-size: 1.375rem;
  line-height: 1.7;
  color: var(--color-ink);
}

.case-text__body p { margin: 0 0 1em; }
.case-text__body p:last-child { margin-bottom: 0; }

@media screen and (max-width: 1175px) {
  .case-hero__inner { padding-top: 10rem; }

  .case-hero__title { grid-column: span 18; font-size: 11vw; }

  .case-hero__tags { grid-column: 19 / span 6; }
}

@media screen and (max-width: 888px) {
  .case-text {
    grid-template-columns: repeat(12, [col] 1fr);
    column-gap: 1.5rem;
  }

  .case-text__body { grid-column: 1 / span 12; }
}

@media screen and (max-width: 600px) {
  .case-hero__inner {
    display: block;
    padding: 5rem var(--container-padding) 2rem;
  }

  .case-hero__title { font-size: 3.75rem; letter-spacing: -0.6px; }

  .case-hero__tags { margin: 2.25rem 0 0; row-gap: 0.5rem; }

  .case-hero__tag { font-size: 0.875rem; }

  .case-media { margin-bottom: 2.5rem; }
  .case-text__body { font-size: 1rem; line-height: 1.8; }
}

@media (prefers-reduced-motion: reduce) {
  .case-hero__inner { animation: none; }
}
