/* Tailor page blocks share the theme's typography, spacing and color tokens. */
/* A page header uses the hero layout only when it has an image. */
.page-header { --header-heading-size: clamp(52px, 7vw, 100px); --header-text-size: clamp(17px, 1.5vw, 20px); --header-text-width: 650px; }
.page-header__copy { padding-block: clamp(70px, 9vw, 130px) clamp(58px, 7vw, 95px); }
.page-header__heading { max-width: 980px; font-size: var(--header-heading-size); margin-bottom: 25px; text-transform: uppercase; }
.page-header__text { max-width: var(--header-text-width); color: var(--color-muted); font-size: var(--header-text-size); line-height: 1.55; }
.page-header .button { margin-top: 13px; }
.page-header--image { --header-heading-size: clamp(58px, 6.6vw, 98px); --header-text-size: clamp(16px, 1.3vw, 19px); --header-text-width: 380px; position: relative; isolation: isolate; min-height: clamp(560px, 46vw, 690px); background: #e9e9e9; overflow: hidden; }
.page-header__image { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.page-header--image .page-header__inner { min-height: inherit; display: flex; align-items: center; }
.page-header--image .page-header__copy { width: min(42%, 520px); padding-block: 72px; }
.page-header--image .page-header__heading { margin-bottom: 23px; }
.page-header--image .page-header__text { line-height: 1.5; margin-bottom: 30px; }
.page-header--image .section-label { color: var(--color-action); }
.page-header--image .button { margin-top: 0; }
.builder-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.builder-card-image .builder-image { aspect-ratio: 1; }
.builder-surface--light { background: var(--color-background); color: var(--color-text); }
.builder-surface--muted { background: var(--color-surface); color: var(--color-text); }
.builder-surface--dark { background: var(--color-action); color: var(--color-action-text); }
.builder-surface--dark .section-label { color: #bdbdbd; }
.builder-surface--dark .builder-feature__text { color: #e0e0e0; }
/* Image-and-text features and calls to action use the same layout. */
.builder-feature__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 7vw, 110px); min-height: clamp(380px, 32vw, 510px); padding-block: clamp(42px, 5vw, 72px); }
.builder-feature__image { width: min(100%, 550px); justify-self: center; }
.builder-feature__image .builder-image { height: auto; object-fit: contain; }
.builder-feature__row--right .builder-feature__image { order: 2; }
.builder-feature__copy { max-width: 610px; }
.builder-feature__heading { font-size: clamp(42px, 5vw, 74px); margin: 12px 0 18px; text-transform: uppercase; }
.builder-feature__text { max-width: 470px; margin-bottom: 27px; color: var(--color-muted); }
.builder-feature__row--text { grid-template-columns: 1fr; }
.builder-feature__row--text .builder-feature__copy, .builder-feature__row--text .builder-feature__text { max-width: 800px; }
.builder-section { padding-block: clamp(48px, 6vw, 88px); }
.builder-prose { max-width: 850px; margin-inline: auto; overflow-wrap: anywhere; }
.builder-prose h2 { font-size: clamp(34px, 4vw, 54px); margin-bottom: 25px; }
.builder-prose h3 { font-size: clamp(26px, 3vw, 34px); margin-block: 28px 15px; }
.builder-prose p, .builder-prose ul, .builder-prose ol { margin-bottom: 20px; }
.builder-prose a { text-decoration: underline; text-underline-offset: 3px; }
.builder-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.builder-prose td, .builder-prose th { border: 1px solid var(--color-border); padding: 10px; }
.builder-faq details { border-bottom: 1px solid var(--color-border); }
.builder-faq summary { padding: 22px 0; cursor: pointer; font-size: 18px; font-weight: 700; }
.builder-faq details > div { padding-bottom: 10px; }


@media (max-width: 1050px) {
    .page-header--image .page-header__copy { width: min(47%, 480px); }
}
@media (max-width: 800px) {
    .page-header--image { --header-heading-size: clamp(48px, 7.6vw, 72px); min-height: 590px; }
    .page-header--image .page-header__copy { width: 46%; }
    .page-header__image { object-position: 57% center; }
}
@media (max-width: 600px) {
    .builder-feature__row { grid-template-columns: 1fr; gap: 26px; }
    .builder-feature__row--right .builder-feature__image { order: 0; }
    .page-header--image { --header-heading-size: clamp(51px, 12vw, 69px); --header-text-width: 350px; min-height: 730px; }
    .page-header__image { top: auto; height: 55%; object-position: 62% center; }
    .page-header--image .page-header__inner { align-items: flex-start; }
    .page-header--image .page-header__copy { width: 100%; padding-top: 55px; padding-bottom: 390px; }
}
