/* Center public compositions at the approved 80% desktop zoom.
   Percentages resolve against the available layout width. The shared frame
   stops at 1376 displayed pixels; compact two-part sections use a narrower,
   centered group instead of pushing their contents to opposite page edges. */
@media (min-width: 900px) {
  .public-product > .product-page {
    --gutter: max(40px, calc((100% - 1720px) / 2));
  }

  .public-landing > .landing-page {
    --section-gutter: max(40px, calc((100% - 1720px) / 2));
  }

  .site-header {
    padding-inline: 40px;
  }

  .site-header .header-inner {
    width: 100%;
    max-width: 1720px;
    margin-inline: auto;
  }

  .contact-footer {
    width: calc(100% - 80px);
    max-width: 1720px;
    margin-inline: auto;
  }

  .trainer-page .trainer-demo-invite {
    width: calc(100% - 80px);
    max-width: 1720px;
    margin-inline: auto;
  }

  .public-landing .landing-hero {
    grid-template-columns: minmax(0, 740px) minmax(0, 440px);
    justify-content: center;
    column-gap: clamp(40px, 5vw, 80px);
  }

  .public-landing .hero-copy {
    width: 100%;
    max-width: 740px;
    justify-self: center;
  }

  .public-landing .hero-collage {
    width: 100%;
    max-width: 440px;
    justify-self: center;
  }

  .trainer-page .product-hero {
    grid-template-columns: minmax(0, 740px) minmax(0, 550px);
    justify-content: center;
    column-gap: clamp(40px, 5vw, 80px);
  }

  /* Keep the existing preview size and bring its companion copy alongside
     it. The complete group, rather than each text line, is centered. */
  .trainer-page .trainer-repeat {
    grid-template-columns: minmax(0, 520px) minmax(0, 430px);
    justify-content: center;
    column-gap: clamp(40px, 5vw, 80px);
  }

  .trainer-page .trainer-repeat > div:first-child {
    justify-self: start;
  }

  .trainer-page .trainer-repeat > .progress-preview {
    justify-self: end;
  }
}
