/* Keeps editorial display copy readable without turning paragraphs into billboards. */
@media (min-width: 901px) {
  body[data-page="home"] .hero-content {
    width: min(900px, calc(100% - 80px));
    max-width: 900px;
  }

  body[data-page="home"] .hero h1 {
    width: 100%;
    max-width: 900px;
    font-size: clamp(46px, 3.5vw, 50px);
    line-height: .98;
  }

  body[data-page="home"] .brand-story {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  body[data-page="home"] .brand-story-copy {
    padding-right: 56px;
    padding-left: 56px;
  }

  body[data-page="home"] .brand-story-copy h2 {
    max-width: 620px;
    width: 100%;
    font-size: clamp(36px, 2.8vw, 40px);
    line-height: 1.04;
    text-wrap: balance;
  }

  body[data-page="home"] .brand-story-copy > p:last-of-type {
    font-size: clamp(25px, 2.25vw, 34px);
    line-height: 1.25;
    text-wrap: pretty;
  }

  body[data-page="program"] .program-manifesto h2 {
    max-width: none;
    font-size: clamp(48px, 3.9vw, 56px);
    line-height: .98;
    text-wrap: balance;
  }

  body[data-page="program"] .program-band h2 {
    font-size: 46px;
    line-height: .98;
  }

  body[data-page="program"] .sample-day-heading h2 {
    max-width: 760px;
    font-size: clamp(48px, 4.5vw, 66px);
    line-height: 1;
    text-wrap: balance;
  }

  body[data-page="kids-program"] .kids-family-copy h2,
  body[data-page="kids-program"] .kids-age-groups article h2 {
    max-width: 620px;
    font-size: clamp(40px, 3.05vw, 44px);
    line-height: 1.02;
    text-wrap: balance;
  }

  body[data-page="kids-program"] .program-ticket h2 {
    max-width: 1080px;
    font-size: clamp(54px, 5.2vw, 76px);
    line-height: 1;
    text-wrap: balance;
  }

  body[data-page="festival-spaces"] .spaces-intro h2,
  body[data-page="festival-spaces"] .spaces-showcase-heading h2 {
    max-width: 900px;
    font-size: clamp(52px, 4.85vw, 72px);
    line-height: 1;
    text-wrap: balance;
  }

  body[data-page="festival-spaces"] .spaces-intro .container {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  }

  body[data-page="festival-spaces"] .spaces-intro h2 {
    max-width: none;
    font-size: clamp(48px, 3.75vw, 54px);
  }

  body[data-page="info"] .page-intro h2,
  body[data-page="tickets"] .page-intro h2,
  body[data-page="masters"] .page-intro h2 {
    font-size: clamp(38px, 2.8vw, 42px);
    line-height: 1.03;
    text-wrap: balance;
  }

  body[data-page="info"] .page-intro,
  body[data-page="tickets"] .page-intro,
  body[data-page="masters"] .page-intro {
    grid-template-columns: minmax(0, .48fr) minmax(0, .52fr);
  }
}

@media (max-width: 900px) {
  body[data-page="home"] .hero h1,
  body[data-page="program"] .program-manifesto h2,
  body[data-page="program"] .program-band h2,
  body[data-page="program"] .sample-day-heading h2,
  body[data-page="kids-program"] .kids-family-copy h2,
  body[data-page="kids-program"] .kids-age-groups article h2,
  body[data-page="kids-program"] .program-ticket h2,
  body[data-page="festival-spaces"] .spaces-intro h2,
  body[data-page="festival-spaces"] .spaces-showcase-heading h2,
  body[data-page="info"] .page-intro h2,
  body[data-page="tickets"] .page-intro h2,
  body[data-page="masters"] .page-intro h2 {
    text-wrap: balance;
  }

  body[data-page="home"] .brand-story-copy > p:last-of-type {
    font-size: clamp(22px, 6.4vw, 28px);
    line-height: 1.3;
    text-wrap: pretty;
  }
}
