/* P4: editorial photographs, wayfinding and church media. Only P4 markup is styled. */
.p4{--p4-line:var(--pb-border,#d5d5d5);--p4-radius:var(--pb-radius,0px);box-sizing:border-box;color:var(--pb-text,#202020);background:var(--pb-bg,transparent);max-width:var(--pb-content-width,76rem);margin-inline:auto;padding:clamp(2.5rem,6vw,6rem) clamp(1rem,4vw,3rem);container-type:inline-size;overflow-wrap:normal}
.p4 *{box-sizing:border-box;min-width:0}.p4 [hidden]{display:none!important}.p4 :is(h1,h2,h3,p,figure,blockquote){margin:0}.p4 :is(h1,h2),.p4 h3{font-weight:var(--pb-heading-weight,700);line-height:1.12;text-wrap:balance}.p4 :is(h1,h2){font-size:clamp(2rem,5cqi,4.5rem);letter-spacing:-.035em}.p4 h3{font-size:clamp(1.25rem,2.6cqi,2rem)}.p4 p{line-height:1.65}.p4 img{display:block;width:100%;object-fit:cover}.p4 a{color:inherit;text-underline-offset:.22em}.p4 :is(button,input,summary,a,[tabindex]):focus-visible{outline:3px solid currentColor;outline-offset:4px}.p4 :is(button,summary){cursor:pointer}.p4 :is(button,input){font:inherit;color:inherit}.p4 input{background:var(--pb-surface,color-mix(in srgb,var(--pb-primary,#1264ff) 6%,var(--pb-bg,#fff)))}.p4-heading{display:grid;gap:1rem;margin-bottom:clamp(1.5rem,4cqi,3.5rem);max-width:58rem}.p4-heading>p:last-child{max-width:60ch}.p4 .pb-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700}.p4-index{font-size:clamp(2.25rem,6cqi,5rem);line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;display:block}.p4-fallback{border-top:1px solid var(--p4-line);padding-top:1.5rem;display:grid;justify-items:start;gap:1.5rem}
/* Galleries: authored DOM order is never changed by dense packing. */
.p4-gallery-items{display:grid;gap:clamp(.75rem,2cqi,1.5rem)}.p4-gallery figure{overflow:hidden;border-radius:var(--p4-radius)}.p4-gallery img{aspect-ratio:3/2;height:auto}.p4-gallery figcaption{padding-block:.75rem;font-size:.9rem}.p4-gallery--mosaic .p4-gallery-items{grid-template-columns:repeat(3,minmax(0,1fr))}.p4-gallery--mosaic figure:nth-child(5n+1){grid-column:span 2;grid-row:span 2}.p4-gallery--mosaic figure:nth-child(5n+1) img{aspect-ratio:1}.p4-gallery--masonry .p4-gallery-items{display:block;columns:3;column-gap:1.25rem}.p4-gallery--masonry figure{break-inside:avoid;margin-bottom:1.25rem}.p4-gallery--masonry figure:nth-child(3n+1) img{aspect-ratio:3/4}.p4-gallery--masonry figure:nth-child(3n+2) img{aspect-ratio:1}.p4-gallery--horizontal_scroll .p4-gallery-items,.p4-gallery--snapshot_band .p4-gallery-items{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;gap:1.25rem}.p4-gallery--horizontal_scroll figure{flex:0 0 min(75%,40rem);scroll-snap-align:start}.p4-gallery--snapshot_band figure{flex:0 0 min(65%,20rem);scroll-snap-align:start;margin-top:2rem}.p4-gallery--snapshot_band figure:nth-child(even){margin-top:0;margin-bottom:2rem}.p4-gallery--snapshot_band img{aspect-ratio:4/5}.p4-gallery--portfolio_rows .p4-gallery-items{display:flex;flex-wrap:wrap;gap:1rem}.p4-gallery--portfolio_rows figure{flex-basis:15rem}.p4-gallery--portfolio_rows img{height:16rem;aspect-ratio:auto}.p4-gallery--series_bento .p4-gallery-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.p4-series-label{grid-column:1/-1;border-top:1px solid var(--p4-line);padding-block:1.5rem .5rem}.p4-gallery--series_bento figure:nth-of-type(3n+1){grid-column:span 2}.p4-gallery--series_bento img{height:20rem;aspect-ratio:auto}.p4-gallery--before_after .p4-gallery-items{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-comparison{--p4-reveal:50%;position:relative;overflow:hidden;aspect-ratio:3/2}.p4-comparison img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.p4-comparison .p4-after{clip-path:inset(0 var(--p4-reveal) 0 0)}.p4-comparison::after{content:"";position:absolute;top:0;bottom:0;right:var(--p4-reveal);border-right:3px solid #fff;filter:drop-shadow(0 0 1px #000);pointer-events:none}.p4-range-label{display:grid;gap:.5rem;padding-top:1rem}.p4-range-label input{width:100%;min-height:44px;accent-color:var(--pb-primary,#1264ff)}
/* Scenes: all narrative content exists in static flow. Scroll animation is progressive. */
.p4-scene-items{display:grid;gap:clamp(2rem,7cqi,7rem)}.p4-scene-photo{overflow:hidden;border-radius:var(--p4-radius);align-self:stretch;position:relative}.p4-scene-photo::before{content:"";display:block;aspect-ratio:4/3}.p4-scene-photo img{position:absolute;inset:0;height:100%}.p4-scene-copy{display:grid;gap:1rem;padding-block:2rem;max-width:50ch}.p4-scene--zoom .p4-scene-photo{margin-inline:8%}.p4-scene--spin .p4-scene-card{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(1.5rem,5cqi,5rem);align-items:center}.p4-scene--sequence .p4-scene-card{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;border-top:1px solid var(--p4-line);padding-top:2rem}.p4-scene--sequence .p4-scene-card:nth-child(even) .p4-scene-photo{order:2}.p4-scene--stacked_cards .p4-scene-card{position:sticky;top:5rem;background:var(--pb-bg,#fff);border:1px solid var(--p4-line);border-radius:var(--p4-radius);box-shadow:var(--pb-card-shadow,none);padding:clamp(1rem,3cqi,3rem);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:2rem}.p4-scene--stacked_cards .p4-scene-card:nth-child(even){top:6rem}
@keyframes p4-zoom{from{transform:scale(.82)}to{transform:scale(1)}}@keyframes p4-spin{from{transform:rotate(-8deg) scale(.9)}to{transform:rotate(0) scale(1)}}@keyframes p4-sequence{from{transform:translateY(3rem)}to{transform:translateY(0)}}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.p4-scene--zoom .p4-scene-photo{animation:p4-zoom linear both;animation-timeline:view();animation-range:entry 0% cover 50%}.p4-scene--spin .p4-scene-photo{animation:p4-spin linear both;animation-timeline:view();animation-range:entry 0% cover 50%}.p4-scene--sequence .p4-scene-photo{animation:p4-sequence linear both;animation-timeline:view();animation-range:entry 0% cover 40%}}}
/* Choosing: numbered route, filter directory, questions, age rail, doors and perforated invitation. */
.p4-choices{display:grid;gap:1.5rem}.p4-choice{padding:1.5rem;border-top:1px solid var(--p4-line);display:grid;gap:1rem;align-content:start}.p4-choose--pathway .p4-choices{grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:path}.p4-choose--pathway .p4-choice{border-inline-start:1px solid var(--p4-line);border-top:0;padding-inline:1.5rem}.p4-choose--pathway_finder .p4-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-choose--pathway_finder .p4-choice{border:1px solid var(--p4-line);border-radius:var(--p4-radius);background:var(--pb-surface,transparent)}.p4-filter-tools{display:grid;gap:1rem;margin-bottom:2rem}.p4-filter-tools label{display:grid;gap:.5rem}.p4-filter-tools input{max-width:40rem;width:100%;padding:.8rem;border:1px solid var(--p4-line);border-radius:var(--p4-radius);min-height:44px}.p4-chips{display:flex;gap:.5rem;flex-wrap:wrap}.p4-chips button{border:1px solid var(--p4-line);background:transparent;padding:.65rem 1rem;min-height:44px}.p4-chips [aria-pressed=true]{background:var(--pb-text,#202020);color:var(--pb-bg,#fff);border-color:currentColor}.p4-choose--question_finder .p4-choice{padding:0}.p4-choose--question_finder summary{padding:1.25rem;font-size:clamp(1.15rem,2.5cqi,1.8rem);min-height:44px}.p4-choose--question_finder details>p,.p4-choose--question_finder details>a{display:block;margin:0 1.25rem 1.25rem;max-width:70ch}.p4-choose--age_path .p4-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.p4-choose--age_path .p4-index{font-size:clamp(1.5rem,3cqi,2.5rem)}.p4-choose--age_path .p4-choice{border-inline-start:3px solid currentColor;margin-inline-start:1rem}.p4-choose--two_doors .p4-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--p4-line)}.p4-choose--two_doors .p4-choice{border:0;padding:clamp(2rem,5cqi,5rem)}.p4-choose--two_doors .p4-choice:nth-child(even){background:var(--pb-surface,color-mix(in srgb,var(--pb-primary,#1264ff) 6%,var(--pb-bg,#fff)));border-inline-start:1px solid var(--p4-line)}.p4-choose--invitation .p4-choice{position:relative;padding:clamp(1.5rem,4cqi,4rem);padding-inline-end:30%;border:1px solid var(--p4-line);border-radius:var(--p4-radius)}.p4-choose--invitation .p4-index{font-size:1rem}.p4-stub{position:absolute;inset-block:0;inset-inline-end:0;width:25%;border-inline-start:2px dashed currentColor;display:flex;align-items:center;padding:1.5rem;font-size:1.2rem}
/* Proof: quilted quotes, semantic comparison, menu rules, funding meter, type-led poster. */
.p4-proof--reviews_wall .p4-proof-items{columns:2;column-gap:2rem}.p4-proof--reviews_wall article{break-inside:avoid;padding:2rem;border:1px solid var(--p4-line);border-radius:var(--p4-radius);margin-bottom:2rem;background:var(--pb-surface,transparent)}.p4-proof--reviews_wall article:first-child{font-size:1.35rem}.p4-proof blockquote footer{display:grid;gap:.3rem;margin-top:1.5rem;font-size:.9rem}.p4-table-scroll{overflow:auto;border-block:1px solid var(--p4-line)}.p4 table{border-collapse:collapse;width:100%;min-width:32rem;text-align:left}.p4 caption{text-align:left;font-size:.9rem;padding:1rem}.p4 :is(th,td){padding:1.25rem;border-bottom:1px solid var(--p4-line);vertical-align:top}.p4 :is(th,td)>:is(a,span,small){display:block}.p4 th{font-weight:650}.p4-highlight{background:var(--pb-surface,color-mix(in srgb,var(--pb-primary,#1264ff) 6%,var(--pb-bg,#fff)));border-inline:2px solid currentColor}.p4-highlight small{font-weight:400;margin-top:.5rem}.p4-proof--price_list article{padding-block:1.5rem;border-bottom:1px solid var(--p4-line);display:flex;gap:2rem;align-items:center;justify-content:space-between}.p4-proof--price_list article p{max-width:55ch}.p4-price{white-space:nowrap;font-size:clamp(1.1rem,3cqi,2rem)}.p4-proof--lineup_poster .p4-proof-items{border-block:3px solid currentColor;display:flex;flex-wrap:wrap;gap:1.5rem 3rem;padding-block:2rem}.p4-proof--lineup_poster article{flex:1 1 32%;padding-block:1rem}.p4-proof--lineup_poster h3{font-size:clamp(2rem,5cqi,5rem);text-transform:uppercase;letter-spacing:-.04em}.p4-proof--lineup_poster article:first-child{flex-basis:100%}.p4-proof--lineup_poster article:first-child h3{font-size:clamp(2.5rem,9cqi,8rem)}.p4-campaign{display:grid;gap:1.5rem;border-block:1px solid var(--p4-line);padding-block:3rem;justify-items:start}.p4-total{font-size:clamp(2rem,7cqi,6rem);line-height:1.1!important;font-variant-numeric:tabular-nums}.p4-total small{font-size:1rem}.p4 progress{width:100%;height:1.25rem;accent-color:var(--pb-text,#202020)}
/* Visit: a clock plate beside a chronological story, campus matrix and searchable map/list. */
.p4-clock-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(2rem,5cqi,5rem);align-items:start}.p4-clock-plate{position:sticky;top:6rem;display:grid;gap:1.5rem;border-top:3px solid currentColor;padding-top:2rem}.p4-clock-plate strong{font-size:clamp(2rem,6cqi,5rem);line-height:1;font-variant-numeric:tabular-nums}.p4-clock-steps{list-style:none;margin:0;padding:0}.p4-clock-steps li{border-top:1px solid var(--p4-line);padding-block:2rem}.p4-clock-time{display:block;font-size:1.5rem;margin-bottom:1rem}.p4-clock-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center}.p4-clock-row>div:only-child{grid-column:1/-1}.p4-clock-row p{margin-top:1rem}.p4-stretch-photo{position:relative;align-self:stretch;overflow:hidden;border-radius:var(--p4-radius)}.p4-stretch-photo::before{content:"";display:block;aspect-ratio:4/5}.p4-stretch-photo img{position:absolute;inset:0;height:100%;max-height:none}.p4-location-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:2rem;align-items:start}.p4-location-list{display:grid}.p4-location-list article{border-top:1px solid var(--p4-line);padding-block:1.5rem;display:grid;gap:1rem}.p4-map{position:sticky;top:6rem;min-height:28rem;background:var(--pb-surface,color-mix(in srgb,var(--pb-primary,#1264ff) 6%,var(--pb-bg,#fff)));border-radius:var(--p4-radius);overflow:hidden}.p4-map>p{padding:2rem}.p4-map .maplibregl-marker[hidden]{display:none!important}
/* Church media uses the host site's published posts and existing livestream schedule. */
.p4-post{display:grid;gap:1rem}.p4-post-photo{overflow:hidden;border-radius:var(--p4-radius)}.p4-post-photo img{aspect-ratio:3/2;height:auto}.p4-post-copy{display:grid;gap:.75rem}.p4-post time{font-size:.85rem}.p4-message-index{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:start}.p4-message-preview{position:sticky;top:6rem}.p4-message-list{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem}.p4-message-list .p4-post{grid-template-columns:6rem 1fr;align-items:center;border-top:1px solid var(--p4-line);padding-top:1.5rem}.p4-message-list .p4-post-photo{align-self:stretch;position:relative}.p4-message-list .p4-post-photo::before{content:"";display:block;aspect-ratio:1}.p4-message-list .p4-post-photo img{position:absolute;inset:0;height:100%;aspect-ratio:auto}.p4-message-list .p4-post-copy:only-child{grid-column:1/-1}.p4-message-list h3{font-size:1.25rem}.p4-series-shelf{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.5rem;padding-bottom:1rem}.p4-series-shelf .p4-shelf-series{flex:0 0 min(75%,24rem);scroll-snap-align:start;display:grid;align-content:start;gap:2rem;border-bottom:2px solid currentColor;padding-bottom:1.5rem}.p4-shelf-series>header{display:grid;gap:.75rem}.p4-series-shelf .p4-post img{aspect-ratio:3/4}.p4-speaker{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.p4-speaker-profile{position:sticky;top:6rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;align-items:center}.p4-speaker-profile>div:only-child{grid-column:1/-1}.p4-speaker-messages{display:grid;gap:2rem}.p4-season-archive details{border-top:1px solid var(--p4-line);padding-block:1.5rem}.p4-season-archive summary{font-size:clamp(2rem,5cqi,4rem);min-height:44px}.p4-season-archive summary span{font-size:1rem;margin-inline-start:1rem}.p4-season-archive details>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;padding-block:2rem}.p4-live-stage{aspect-ratio:16/9;min-height:20rem;padding:clamp(1.5rem,4cqi,4rem);display:grid;align-content:center;justify-items:start;gap:1.5rem;border:1px solid var(--p4-line);background:var(--pb-surface,color-mix(in srgb,var(--pb-primary,#1264ff) 6%,var(--pb-bg,#fff)));border-radius:var(--p4-radius)}.p4-live-stage h3{font-size:clamp(2rem,6cqi,5rem)}
@container(max-width:48rem){.p4-gallery--masonry .p4-gallery-items{columns:2}.p4-gallery--mosaic .p4-gallery-items,.p4-gallery--series_bento .p4-gallery-items{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-gallery--before_after .p4-gallery-items{grid-template-columns:1fr}.p4-choose--pathway .p4-choices{grid-template-columns:1fr}.p4-scene--spin .p4-scene-card,.p4-scene--sequence .p4-scene-card,.p4-scene--stacked_cards .p4-scene-card,.p4-clock-layout,.p4-location-layout,.p4-message-index,.p4-speaker{grid-template-columns:1fr;gap:2rem}.p4-scene--sequence .p4-scene-card:nth-child(even) .p4-scene-photo{order:0}.p4-scene--stacked_cards .p4-scene-card{position:static}.p4-clock-plate,.p4-map,.p4-message-preview,.p4-speaker-profile{position:static}.p4-clock-row{grid-template-columns:1fr}.p4-season-archive details>div{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-proof--reviews_wall .p4-proof-items{columns:1}.p4-choose--invitation .p4-choice{padding:1.5rem}.p4-stub{position:static;width:auto;border-inline-start:0;border-top:2px dashed currentColor;padding:1.5rem 0 0;margin-top:1rem}.p4-proof--price_list article{flex-wrap:wrap}}
@container(max-width:30rem){.p4-gallery--mosaic .p4-gallery-items,.p4-gallery--series_bento .p4-gallery-items,.p4-choose--pathway_finder .p4-choices,.p4-choose--two_doors .p4-choices,.p4-choose--age_path .p4-choices,.p4-season-archive details>div{grid-template-columns:1fr}.p4-gallery--mosaic figure:nth-child(5n+1),.p4-gallery--series_bento figure:nth-of-type(3n+1){grid-column:auto;grid-row:auto}.p4-gallery--masonry .p4-gallery-items{columns:1}.p4-choose--two_doors .p4-choice:nth-child(even){border-inline-start:0;border-top:1px solid var(--p4-line)}.p4-speaker-profile{grid-template-columns:1fr}.p4-proof--lineup_poster article{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.p4 *{animation:none!important;transition:none!important;scroll-behavior:auto!important;scroll-snap-type:none!important}.p4-scene--stacked_cards .p4-scene-card,.p4-clock-plate,.p4-message-preview,.p4-speaker-profile{position:static}.p4-scene--zoom .p4-scene-photo{margin-inline:0}}

/* Honor the existing corner/shadow switches without adding another theme setting. */
.pb-corners-sharp .p4{--p4-radius:0px}.p4 .pb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.85rem 1.35rem;text-decoration:none;font-weight:600}.p4-scene-copy:only-child{grid-column:1/-1}.p4 .p4-shadow{box-shadow:none}
@container(max-width:30rem){.p4-message-list .p4-post{grid-template-columns:1fr}.p4-message-list .p4-post-photo img{position:static;aspect-ratio:3/2;height:auto}.p4-message-list .p4-post-photo::before{display:none}}

@container(max-width:48rem){.p4-scene .p4-scene-photo{animation:none;transform:none}}

.p4-scene--stacked_cards .p4-scene-card:focus-within{z-index:2}

/* Notebook photographs keep readable captions and their own space on phones. */
@container(max-width:42rem){.p4-gallery--snapshot_band .p4-gallery-items{display:grid;grid-template-columns:minmax(0,1fr)}.p4-gallery--snapshot_band figure{margin:0;padding:1rem;background:var(--pb-surface)}.p4-gallery--snapshot_band figcaption{font-size:1rem;color:var(--pb-text)}}

/* Comparisons retain one semantic table; narrow screens read one feature at a time. */
@container(max-width:42rem) {
  .p4-compare { overflow:visible; }
  .p4-compare table,.p4-compare tbody { display:block; min-width:0; width:100%; }
  .p4-compare thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
  .p4-compare tr { display:grid; grid-template-columns:minmax(0,1fr); padding-block:1rem; border-bottom:1px solid var(--p4-line); }
  .p4-compare :is(th,td) { display:block; width:auto; min-width:0; padding:.75rem 1rem; border:0; white-space:normal; overflow-wrap:break-word; }
  .p4-compare tbody th { font-size:1.125rem; }
  .p4-compare td::before { content:attr(data-option); display:block; font-weight:650; margin-bottom:.5rem; }
  .p4-compare .p4-highlight { border-inline-start:2px solid currentColor; }
}

/* Visual loop 2: a table caption keeps its full measure after the rows stack. */
.p4-compare caption { caption-side:top; width:auto; overflow-wrap:normal; }
.p4-compare .p4-highlight { background:transparent; border-inline:0; border-inline-start:2px solid var(--pb-primary); }
@container(max-width:42rem) {
  .p4-compare caption { display:block; width:100%; }
  .p4-compare :is(th,td) { padding-inline:0; }
  .p4-compare .p4-highlight { padding-inline-start:1rem; }
}
