/* Hero headings only. Keep each template's font, alignment and body layout. */
.page .header-banner-hero h1,
.page .entry-content > .gb-container:first-child h1,
.page-id-31888 h1.gb-headline-c9f6e122,
.page-template-template-blog h1.gb-headline-dd5f6a6e {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    text-wrap: balance;
}

/* The title was restricted to 40% even when it was the only hero column. */
.page .header-banner-hero .gb-grid-wrapper > .gb-grid-column:has(h1) {
    width: 100%;
    min-width: 0;
}

/* Team's title is also alone in its row, below the group photo. */
.page-id-31888 .gb-grid-wrapper-edd5447d > .gb-grid-column-9db89cb3 {
    width: 100%;
}

@media (min-width: 768px) {
    h1 > .pd-hero-line {
        display: block;
    }
}

/* Homepage's plain heading missed the service hero's responsive type sizes. */
@media (max-width: 1024px) {
    .page .header-banner-hero h1.banner-heading {
        font-size: 40px;
        line-height: 56px;
    }
}

@media (max-width: 767px) {
    /* Leave room for the viewport edges without reducing the existing type. */
    .page .header-banner-hero h1,
    .page .entry-content > .header-banner-hero:first-child h1 {
        max-width: min(960px, calc(100vw - 40px));
    }

    .page .header-banner-hero h1.banner-heading {
        font-size: 30px;
        line-height: 42px;
    }
}
