/* The section owns the frame; block families own only their interior composition. */
.st-section{--pb-overlay-ink:#111827;position:relative;isolation:isolate;--st-width:var(--st-page-width,1240px);--st-align:left;--st-items:start;--st-flex:flex-start;--st-axis:1.5rem;scroll-margin-top:calc(var(--pb-header-h,72px) + 1rem)}
.st-section.st-align--center{--st-align:center;--st-items:center;--st-flex:center;--st-axis:50%}
.st-section.st-align--right{--st-align:right;--st-items:end;--st-flex:flex-end;--st-axis:calc(100% - 1.5rem)}
.pb-block.st-section>.st-inner{position:relative;z-index:1;box-sizing:border-box;width:100%;max-width:calc(var(--st-width) + var(--pb-px,var(--st-gutter,clamp(1.25rem,4vw,3rem)))*2);margin-inline:auto;padding:var(--pb-pt,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) var(--pb-px,var(--st-gutter,clamp(1.25rem,4vw,3rem))) var(--pb-pb,var(--st-space-normal,clamp(2.5rem,6vw,5rem)));text-align:var(--st-align);min-width:0}
/* Full width expands the backdrop; copy still uses the shared frame. */
.st-section.st-section--full>.st-inner{max-width:calc(var(--st-page-width,1240px) + var(--st-gutter,clamp(1.25rem,4vw,3rem))*2)}
.st-section.st-section--full:is([data-section-native-background=true],.st-section--full_bleed_half,.st-section--marquee)>.st-inner{max-width:none;padding-inline:0}
/* These are section shells, never cards or copy/media columns. */
.pb-block.st-section>.st-inner>:is(div,section,article):not([role=dialog]),.st-section .pb-l,.st-section .pb-p2,.st-section .pb-p3,.st-section .p4{padding:0!important;max-width:none;max-inline-size:none;background-color:transparent!important}
.st-section :is(.pb-l__wrap,.pb-p2__wrap,.pb-p3__wrap){width:100%;max-width:none;max-inline-size:none;margin-inline:auto}
.st-section :is(.pb-l__head,.pb-p2__head,.pb-p3__head,.p4-heading){max-width:none;max-inline-size:none}
.st-section :is(.prose,.pb-p3__prose){max-width:65ch;max-inline-size:65ch}
.st-align--center :is(.prose,.pb-p3__prose){margin-inline:auto}
.st-align--right :is(.prose,.pb-p3__prose){margin-inline-start:auto}
.st-section :is(.pb-l__head,.pb-p2__head,.pb-p3__head,.p4-heading)>p{max-width:65ch;margin-inline:0}
.st-align--center :is(.pb-l__head,.pb-p2__head,.pb-p3__head,.p4-heading)>p{margin-inline:auto}
.st-section :is(.pb-l__head,.pb-p2__head,.pb-p3__head,.p4-heading){text-align:var(--pb-head-align,var(--st-align));justify-items:var(--st-items)}
.st-section :is(.pb-feat-item,.pb-p3__card-copy,.pbstep--place-top,.pb-hero-inner){text-align:var(--st-align)!important;align-items:var(--st-flex)!important}
.st-section :is(.pb-l__actions,.pb-p2__actions,.pb-p3__actions,.pb-p3__link-row),.st-section :is(div,p):has(>.pb-btn){justify-content:var(--st-flex)!important;text-align:var(--st-align)}
.st-section .pb-feat-item>svg,.st-section .pb-feat-item>div:first-child{margin-inline:0}
.st-align--center .pb-feat-item>svg,.st-align--center .pb-feat-item>div:first-child{margin-inline:auto}
.st-section .pbstep--place-top::after{left:calc(var(--st-axis) + 2rem)!important}
/* A named background is resolved on the section, not separately by each family. */
.st-background-video,.st-video-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.st-background-video{display:none}}
@media(max-width:767px){.st-section[data-hide-phone=true]{display:none}.pb-block.st-section>.st-inner{padding-top:var(--pb-pt)!important;padding-bottom:var(--pb-pb)!important}}
@media(min-width:768px){.st-section[data-hide-desktop=true]{display:none}}

.st-section :is(.pb-l__card,.pb-p3__grid-card,.p4-choice){text-align:var(--st-align)}
.st-section :is(.pb-l__icon,.pb-p3__icon,.pb-design-icon){align-self:var(--st-items)}
.st-align--center :is(.pb-l__card,.pb-p3__grid-card)>svg{margin-inline:auto}
/* Avatars and logo/action rows follow the same alignment as their labels. */
.st-section .tm-card{text-align:var(--st-align)!important}
.st-section :is(.tm-socials,.pb-cols.flex){justify-content:var(--st-flex)!important}
.st-align--left :is(.tm-photo,.tm-initials){margin-inline:0 auto!important}
.st-align--center :is(.tm-photo,.tm-initials){margin-inline:auto!important}
.st-align--right :is(.tm-photo,.tm-initials){margin-inline:auto 0!important}
.st-section[data-block-type=logos] .grid>.flex{justify-content:var(--st-flex)!important}

/* Edge-to-edge media keeps its copy on the site's standard content frame. */
.st-section--full :is(.pb-l--hero-full_bleed,.pb-l--stats-over_photo,.pb-l--statement-photo)>.pb-l__wrap,
.st-section--full.st-section--image[data-block-type=cta]>.st-inner>div>div,
.st-section--full .pb-hero-inner{
    box-sizing:border-box;width:100%;max-width:calc(var(--st-page-width,1240px) + var(--st-gutter,clamp(1.25rem,4vw,3rem))*2);margin-inline:auto;padding-inline:var(--st-gutter,clamp(1.25rem,4vw,3rem))
}

/* Header space moves with the copy, never outside a native hero backdrop. */
.pb-block.st-section[style*="--st-header-clearance"]>.st-inner{padding-top:calc(var(--pb-pt,0px) + var(--st-header-clearance,0px))!important}
.pb-block.st-section.st-section--hero.st-section--full_bleed>.st-inner{padding-block:0!important}
.st-section--hero.st-section--full_bleed .pb-l--hero-full_bleed>.pb-l__wrap{padding-top:calc(var(--pb-pt,0px) + var(--st-header-clearance,0px));padding-bottom:var(--pb-pb,0px)}

/* A block that paints its own backdrop (photo, video, slideshow) owns the whole
   section height: the frame's vertical space goes INSIDE that backdrop, never
   around it, or the photo shows as a band between two empty strips. */
.pb-block.st-section[data-section-native-background=true]:not(.st-section--full_bleed)>.st-inner{padding-block:0!important}
.pb-block.st-section[data-section-native-background=true]:not(.st-section--full_bleed)>.st-inner>:is(div,section,article):not([role=dialog]){padding-top:calc(var(--pb-pt,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) + var(--st-header-clearance,0px))!important;padding-bottom:var(--pb-pb,var(--st-space-normal,clamp(2.5rem,6vw,5rem)))!important}

/* Each section is its own stacking layer, so an open dialog inside one (team
   bios) must lift its section above the sections that follow it. */
.st-section:has([role=dialog].is-open,[aria-modal=true].is-open){z-index:9000}

/* Older spacing rules pad every direct child of a block; the section's own
   background video and overlay are layers, not content, so they never get it
   (padding shrinks a video's object-fit box into a strip). */
.pb-theme .pb-block.st-section>:is(.st-background-video,.st-video-overlay),.pb-block.st-section>:is(.st-background-video,.st-video-overlay){padding:0!important;margin:0!important}
/* The tone reset clears every direct child's background; the overlay's own color must survive it. */
.pb-block.st-section[data-design-tone]>.st-video-overlay,.pb-block.st-section>.st-video-overlay{background:var(--st-scrim-color)!important}

/* One height treatment for native heroes. The frame still owns all spacing,
   including space INSIDE native backdrops. Minimums never clip longer copy. */
.st-section[data-hero-height]>.st-inner>:is(.pb-l,.pb-p2,.pb-hero-shell){box-sizing:border-box;min-height:max(0px,calc(var(--st-hero-min) - var(--pb-pt,0px) - var(--pb-pb,0px) - var(--st-header-clearance,0px)));align-content:center}
.st-section[data-hero-height]:is([data-section-native-background=true],.st-section--full_bleed)>.st-inner>:is(.pb-l,.pb-p2,.pb-hero-shell){min-height:var(--st-hero-min)}
.st-section[data-hero-height] .pb-l--hero-full_bleed{align-items:center}
.st-section[data-hero-height] .pb-hero-shell{display:grid}
.st-section[data-hero-height] :is(.pb-side-media,.pb-p2__media):before{aspect-ratio:auto;height:var(--st-hero-media);max-height:none}
.st-section[data-hero-height] :is(.pb-l__two,.pb-p2__split,.pb-p2__centerpiece){align-items:stretch}
.st-section[data-hero-height] :is(.pb-l__hero-copy,.pb-p2__copy,.pb-p2__aside){align-self:center}
/* Collage/stack minimums belong to the composition, not every overlapping crop. */
.st-section[data-hero-height] :is(.pb-side-collage,.pb-p2__stack){min-height:var(--st-hero-media)}
.st-section[data-hero-height] :is(.pb-side-collage,.pb-p2__stack) :is(.pb-side-media,.pb-p2__media):before{height:0}
.st-section[data-hero-height] .pb-p2__stack{grid-template-rows:repeat(6,minmax(0,1fr))}
.st-section[data-hero-height] .pb-p2--photo_times_plaque{position:relative}
.st-section[data-hero-height] .pb-p2__plaque{margin-block-start:0}
.st-section[data-hero-height] .pb-p2__plaque-photo{position:static;min-height:var(--st-hero-media);display:grid;align-items:center}
.st-section[data-hero-height] .pb-p2__plaque-photo>.pb-p2__media:before{height:0}
/* Short removes ornamental offsets, retaining all photos and editorial notes. */
.st-section[data-hero-height=short] .pb-p2__strip>.pb-p2__media{margin-block:0}
.st-section[data-hero-height=short] .pb-p2__doors{margin-top:1rem}
.st-section[data-hero-height=short] .pb-p2__doors .pb-p2__media:before{height:calc(var(--st-hero-media)*.6)}
.st-section[data-hero-height=short] .pb-p2--headline_card .pb-p2__wrap{padding:clamp(1rem,2vw,1.5rem)}
.st-section[data-hero-height=short] .pb-p2__action-bar{margin:1rem 0 0}
@container(max-width:48rem){
    .st-section[data-hero-height] :is(.pb-side-media,.pb-p2__media):before{height:min(var(--st-hero-media),16rem)}
    .st-section[data-hero-height] :is(.pb-side-collage,.pb-p2__stack){min-height:min(var(--st-hero-media),20rem)}
    .st-section[data-hero-height] :is(.pb-side-collage,.pb-p2__stack) :is(.pb-side-media,.pb-p2__media):before{height:0}
    .st-section[data-hero-height] .pb-p2__stack{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;gap:.5rem;min-height:0}
    .st-section[data-hero-height] .pb-p2__stack>.pb-p2__media{grid-area:auto;transform:none;border:0}
    .st-section[data-hero-height] .pb-p2__stack>.pb-p2__media:before{height:10rem}
    .st-section[data-hero-height] .pb-p2__plaque-photo{display:block;padding:0}
    .st-section[data-hero-height] .pb-p2__plaque-photo>.pb-p2__media{position:relative}
    .st-section[data-hero-height] .pb-p2__plaque-photo>.pb-p2__media:before{height:min(var(--st-hero-media),16rem)}
    .st-section[data-hero-height] .pb-p2__plaque{margin:0;width:100%}
}

/* svh follows the visible phone viewport; vh is the older-browser fallback. */
@supports(height:100svh){.st-section[data-hero-height]:is([data-hero-height=full],[data-hero-height=tall]){--st-hero-min:var(--st-hero-small-min)!important}}
/* Align every text/action part with the section, including legacy utility heads. */
.st-section :is(.st-heading,.st-eyebrow,.st-lead,.st-card,figcaption,.pb-stat-values,.pbstep-item){text-align:var(--st-align)}
.st-section .pbstep-item{align-items:var(--st-flex)!important}
/* The band follows one line of text rather than the normal section rhythm. */
.pb-block.st-section--marquee>.st-inner{padding-block:clamp(1rem,2vw,2rem)!important}
.pb-block.st-section--stats .pb-stat-values{grid-template-columns:repeat(var(--st-stat-columns,4),minmax(0,1fr))}
.pb-block.st-section--stats .pb-stat-values>*{grid-column:auto!important}
@media(max-width:639px){.pb-block.st-section--stats .pb-stat-values{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

.pb-block.st-section--marquee .pb-marquee [data-pb-field]{color:var(--st-marquee-ink,var(--pb-sec-text,var(--pb-text)))!important}
/* Native strips remain above the overlaid header, inside the first viewport. */
.st-section[data-hero-overlay=true][data-hero-height=full]{margin-block-start:calc(-1 * var(--st-hero-strip-height,0px))}

/* Filled card plates use the contrasting surface in every neutral section. */
.pb-block.st-section :is(.pb-p2__plaque,.pb-p3__card-copy,.pb-l__team-info,.lc--boxed){background-color:var(--pb-surface)}

/* A message beside its button reads left, whatever the section alignment;
   centering it inside its own column made it float (owner, 2026-10-19). */
@media(min-width:640px){.st-section .pb-cta-split-copy,.st-section .pb-cta-split-copy :is(.st-heading,.st-lead,.st-eyebrow){text-align:left!important}}

/* The site's own paper and ink, resolved once on the page so dialogs and other
   overlays can use them inside any tinted, dark or photo section. */
.pb-theme{--pb-site-bg:var(--pb-bg,#fff);--pb-site-text:var(--pb-text,#111827)}
/* Shared photo scrim: one site-level darkness, per-section override, AA floor applied server-side. */
.pb-theme,.st-section{--st-scrim-color:color-mix(in srgb,var(--st-scrim-tint,#000) var(--st-scrim,var(--st-site-scrim,40%)),transparent)}
/* Hero photos carry their text darker by default (owner rule); the section's own --st-scrim still wins. */
.st-section[data-block-type=hero]{--st-scrim-color:color-mix(in srgb,var(--st-scrim-tint,#000) var(--st-scrim,var(--st-hero-scrim,55%)),transparent)}
.st-scrim{position:absolute;inset:0;background:var(--st-scrim-color);pointer-events:none}
.st-scrim-card{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--st-scrim-tint,#000) min(100%,calc(var(--st-scrim,40%) + 25%)),transparent) 0%,var(--st-scrim-color) 45%,transparent 85%)}
/* Rhythm: one eyebrow, lead, header and button distance in every block family. */
.pb-theme{--st-gap-eyebrow:.75rem;--st-gap-lead:1rem;--st-gap-head:clamp(2rem,4vw,3.5rem);--st-gap-actions:2rem;--st-gap-buttons:.75rem}
.st-section .st-eyebrow{margin-block:0 var(--st-gap-eyebrow)}
.st-section .st-heading+.st-lead,.st-section .st-heading+p{margin-block-start:var(--st-gap-lead)}
.st-section :is(.pb-l__head,.pb-p2__head,.pb-p3__head,.p4-heading),
.st-section .st-inner div:has(>.st-heading):not(.st-card *,.pb-hero-inner *,.pb-p2__copy *,.pb-l__hero-copy *):has(+*){margin-block-end:var(--st-gap-head)}
.st-section :is(.pb-l__actions,.pb-p2__actions,.pb-p3__actions,[data-pb-field=buttons]){margin-block-start:var(--st-gap-actions);gap:var(--st-gap-buttons)}
/* Split titles align with their aside instead of owning a bottom gap. */
.st-section .pb-p3__title-split>.pb-p3__head{margin-block-end:0}
@media(max-width:767px){.pb-theme{--st-gap-head:2rem;--st-gap-actions:1.5rem}}
/* Owner rule, phones: section padding is always 40px (site 0 and per-section none stay 0); stacked collection items sit 24px apart. */

@media(max-width:767px){.st-section{--st-space-normal:var(--st-space-phone,40px);--st-space-compact:var(--st-space-phone,40px);--st-space-roomy:var(--st-space-phone,40px)}
.st-section :is(.grid.grid-cols-1,.pb-cols.grid-cols-1,.pb-l__days,.p4-gallery-items,.p4-scene-items,.st-composition-items,.st-columns-row,.pb-q2-tiles__grid){row-gap:var(--st-stack-gap,24px)}}
/* Same-backdrop neighbors read as one band; beats the phone rule above and the section's own padding. */
.pb-theme .pb-block.st-section.pb-block--collapse-top>.st-inner{padding-top:0!important}
/* Designed library sections already own their outer spacing. Keep the builder's
   default phone padding from adding a second band around those compositions. */
.pb-theme .pb-block.st-section:has(>.st-inner>:is([data-design-key],[data-bl-articles-faithful],[class*="-faithful"],.bl-pt,.bl-lg,.bl-lst,.bl-gv,.bl-imagery,.bl-offset,.bl-hero-lib,.bl-careers,.bl-sermons-livestream,.bl-search,.bl-pricing:not([data-b9-pricing])))>.st-inner{padding:0!important;max-width:none!important;width:100%}
