/* Phrase boundaries are rendered in HTML so layout does not depend on JavaScript. */
body .copy-wrap {
  word-break: keep-all;
  overflow-wrap: anywhere;
  line-break: strict;
  text-wrap: pretty;
  letter-spacing: 0;
}

body :is(h1, h2, h3, h4).copy-wrap {
  text-wrap: balance;
  line-height: 1.4;
}

.content-grid {
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
}

.page-hero__grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
}

:is(.section-head, .content-grid, .manifesto__grid, .owned-business__inner, .se-section-head) > * {
  min-width: 0;
}

.section-head > :first-child {
  flex: 1 1 60%;
}

.section-head > p {
  flex: 1 1 35%;
}

.content-grid h2.copy-wrap,
.app-answer h2.copy-wrap,
.app-seo-heading h2.copy-wrap {
  font-size: 48px;
}

.section-title.copy-wrap,
.web-works .section-title.copy-wrap {
  font-size: 52px;
}

.manifesto h2.copy-wrap,
.contact-band h2.copy-wrap {
  font-size: 48px;
}

.visual-hero h1.copy-wrap {
  font-size: 56px;
}

.product-index__grid strong.copy-wrap {
  font-size: 25px;
  line-height: 1.45;
}

.web-work__head h3.copy-wrap {
  font-size: 26px;
}

.text-link {
  max-width: 100%;
  line-height: 1.6;
}

.text-link .arrow {
  flex-shrink: 0;
}

body .se-hero__sub.copy-wrap {
  word-break: keep-all;
}

@media (max-width: 1040px) {
  .manifesto__grid { gap: 48px; }
  .content-grid { gap: 48px; }
  .content-grid h2.copy-wrap,
  .app-answer h2.copy-wrap,
  .app-seo-heading h2.copy-wrap,
  .section-title.copy-wrap,
  .web-works .section-title.copy-wrap,
  .manifesto h2.copy-wrap,
  .contact-band h2.copy-wrap { font-size: 40px; }
  .visual-hero h1.copy-wrap { font-size: 48px; }
  .demo-hero h1.copy-wrap { font-size: 52px; }
  .demo-intro h2.copy-wrap { font-size: 40px; }
}

@media (max-width: 760px) {
  .content-grid,
  .page-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .content-grid { gap: 32px; }
  .visual-hero h1.copy-wrap,
  .hero h1.copy-wrap { font-size: 34px; line-height: 1.45; }
  .content-grid h2.copy-wrap,
  .app-answer h2.copy-wrap,
  .app-seo-heading h2.copy-wrap,
  .section-title.copy-wrap,
  .web-works .section-title.copy-wrap,
  .manifesto h2.copy-wrap,
  .contact-band h2.copy-wrap { font-size: 32px; }
  .owned-business h2.copy-wrap { font-size: 28px; }
  .se-final h2.copy-wrap { font-size: 32px; }
  .demo-hero h1.copy-wrap { font-size: 44px; }
  .demo-intro h2.copy-wrap { font-size: 36px; }
  .service-row h3 { font-size: 36px; line-height: 1.2; }
  .product-index__grid strong.copy-wrap { font-size: 28px; }
  .section-head > :first-child,
  .section-head > p { flex-basis: auto; }
}

@media (max-width: 360px) {
  .visual-hero h1.copy-wrap,
  .hero h1.copy-wrap { font-size: 30px; }
  .content-grid h2.copy-wrap,
  .app-answer h2.copy-wrap,
  .app-seo-heading h2.copy-wrap,
  .section-title.copy-wrap,
  .web-works .section-title.copy-wrap,
  .manifesto h2.copy-wrap,
  .contact-band h2.copy-wrap { font-size: 28px; }
}
