/* Shared overflow protection for every public route. Prefer wrapping over clipping. */
main,
main > *,
main section,
main section > *,
.lp-wrap,
.lp-wrap > *,
.case-wrap,
.case-wrap > *,
.approach-card,
.approach-card > *,
.portfolio-grid,
.portfolio-grid > *,
.team-track,
.team-card,
.prose,
.prose > * {
  min-inline-size: 0;
}

main :is(h1, h2, h3),
.lp-title h1,
.case-title,
.approach-card h2,
.team-h2,
.portfolio-intro h2,
.reviews-honest h2 {
  max-inline-size: 100%;
  overflow-wrap: break-word;
  hyphens: manual;
}

.lp-wrap--privacy .lp-title h1,
.lp-wrap--privacy .lp-title h1 em,
.hero-h1 .line-2 {
  white-space: normal !important;
}

.lp-wrap--privacy .lp-title,
.lp-wrap--privacy .lp-title h1,
.lp-wrap--privacy .lp-title h1 em {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: break-word;
  word-break: normal;
}

.lp-wrap--privacy .lp-title h1 em {
  display: block;
  font-size: clamp(32px, 3.8vw, 50px);
  line-height: 1.08;
  overflow-wrap: normal;
}

.hero-h1 .line,
.hero-h1 .ital {
  max-inline-size: 100%;
  overflow-wrap: normal;
  word-break: normal;
}

.hero-h1 .vcr-word {
  display: inline-block;
  max-inline-size: 100%;
  white-space: nowrap;
  overflow-wrap: normal;
}

.approach-card {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .68fr);
}

.approach-copy,
.approach-copy p,
.approach-card h2 {
  min-inline-size: 0;
  max-inline-size: 100%;
}

.form-trap {
  position: absolute !important;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (max-width: 1400px) {
  .approach-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
}

@media (max-width: 600px) {
  .lp-wrap--privacy .lp-title h1 em {
    font-size: clamp(24px, 7.5vw, 30px);
  }

  .hero-h1 .line-2 {
    font-size: clamp(25px, 8.2vw, 36px) !important;
  }

  .approach-card h2 {
    font-size: clamp(34px, 9.5vw, 52px);
  }
}
