.product-page {
    --product-container: var(--container-width);
    overflow: clip;
    color: var(--color-primary-dark);
}

.product-page [lang="en"],
.product-page [dir="ltr"] {
    direction: ltr;
    unicode-bidi: isolate;
}

.product-container {
    width: min(100%, calc(var(--product-container) + (2 * var(--page-gutter))));
    margin-inline: auto;
    padding-inline: var(--page-gutter);
}

.product-page h1,
.product-page h2,
.product-page h3,
.product-page p,
.product-page figure,
.product-page ul,
.product-page ol {
    margin-block-start: 0;
}

.product-page figure {
    margin: 0;
}

.product-page img {
    width: 100%;
}

.product-section {
    padding-block: 44px;
}

.product-section-heading {
    max-width: 710px;
    margin: 0 auto 26px;
    text-align: center;
}

.product-section-heading h2 {
    margin-block-end: 8px;
    color: var(--color-primary);
    font-weight: 700;
}

.product-section-heading > p:last-child,
.product-section-heading--split > p {
    margin-block-end: 0;
    color: #666b7e;
}

.product-kicker {
    margin-block-end: 6px;
    color: var(--color-accent-text);
    font-weight: 700;
}

.product-button {
    padding: 9px 18px;
    font-size: .84rem;
    line-height: 1.65;
    text-align: center;
    transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.product-button--outline {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: #fff;
}

.product-button--outline:hover,
.product-button--outline:focus-visible {
    color: #fff;
    background: var(--color-primary);
}

.product-page a:focus-visible,
.product-page summary:focus-visible {
    outline: 3px solid rgba(232, 24, 32, .22);
    outline-offset: 3px;
}

@media (min-width: 640px) {
    .product-section {
        padding-block: 52px;
    }

    .product-section-heading {
        margin-block-end: 30px;
    }
}

@media (min-width: 1024px) {
    .product-section {
        padding-block: 64px;
    }

    .product-section-heading {
        margin-block-end: 34px;
    }

    .product-section-heading--split {
        display: grid;
        grid-template-columns: minmax(0, .85fr) minmax(360px, .65fr);
        align-items: end;
        max-width: none;
        text-align: start;
    }

    .product-section-heading--split > p {
        justify-self: end;
        max-width: 470px;
    }
}
