/* Pilgrimage page: photography-led layout (Oct 2026) */
.pp-hero{position:relative;color:#fff;background:#23291f}
.pp-hero__img{display:block;width:100%;height:clamp(460px,82vh,780px);object-fit:cover;object-position:center 40%}
.pp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,24,19,.78) 0%,rgba(20,24,19,.35) 38%,rgba(20,24,19,0) 70%)}
.pp-hero__text{position:absolute;z-index:1;left:0;right:0;bottom:0;padding-bottom:clamp(28px,6vw,72px)}
.pp-hero__text h1{color:#fff;margin:0 0 var(--s1);text-shadow:0 2px 24px rgba(0,0,0,.35)}
.pp-hero__text .lead{color:#fff;margin:0 0 var(--s1);opacity:.95}
.pp-hero__date{font:500 var(--fs-h3)/1.3 var(--font-head);margin:0 0 var(--s3);letter-spacing:.02em}
.pp-hero__text .actions{display:flex;flex-wrap:wrap;gap:var(--s2)}
.pp-hero__text .btn--ghost{color:#fff;border-color:#fff}
.pp-hero__text .btn--ghost:hover{background:#fff;color:#2f3a2c;border-color:#fff}

.pp-band{position:relative;margin:0;background:#23291f}
.pp-band__img{display:block;width:100%;height:clamp(300px,62vw,720px);object-fit:cover}
.pp-band figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--s5) 0 var(--s3);color:#fff;font:500 var(--fs-h3)/1.3 var(--font-head);background:linear-gradient(to top,rgba(20,24,19,.7),rgba(20,24,19,0))}
.pp-band--close .pp-band__img{height:clamp(440px,70vw,720px)}
.pp-band--close{color:#fff}
.pp-band--close::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,24,19,.8),rgba(20,24,19,.15) 65%)}
.pp-band__cta{position:absolute;z-index:1;left:0;right:0;bottom:0;padding-bottom:clamp(28px,6vw,64px)}
.pp-band__cta p{margin:0 0 var(--s2);font:500 var(--fs-h2)/1.15 var(--font-head);color:#fff}
.pp-band__cta .actions{display:flex;flex-wrap:wrap;gap:var(--s2)}
.pp-band__cta .btn--ghost{color:#fff;border-color:#fff}
.pp-band__cta .btn--ghost:hover{background:#fff;color:#2f3a2c}

.pp-mosaic-wrap{padding:var(--section-y) 0}
.pp-mosaic-title{margin:0 0 var(--s4);text-align:center}
.pp-mosaic{column-count:3;column-gap:var(--s2);max-width:1280px;margin:0 auto;padding:0 var(--gutter)}
.pp-mosaic .gallery__item{display:block;width:100%;margin:0 0 var(--s2);break-inside:avoid;overflow:hidden;border-radius:var(--radius);background:var(--sage-100)}
.pp-mosaic .gallery__item img{display:block;width:100%;height:auto;transition:transform .5s ease,opacity .8s ease}
.pp-mosaic .gallery__item:hover img{transform:scale(1.03)}
.pp-credit{margin:var(--s4) auto 0;text-align:center;font-size:var(--fs-small);color:var(--muted)}
.pp-credit a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}
.pp-credit--strip{margin:0;padding:var(--s3) var(--gutter);background:var(--sage-100)}

/* gentle fade-in on scroll (only when JS is running) */
.pp-js .pp-reveal{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}
.pp-js .pp-reveal.is-in{opacity:1;transform:none}

@media (max-width:900px){.pp-mosaic{column-count:2}}
@media (max-width:560px){.pp-mosaic{column-gap:10px}.pp-mosaic .gallery__item{margin-bottom:10px}.pp-hero__img{height:clamp(420px,78vh,640px)}}
@media (prefers-reduced-motion:reduce){.pp-js .pp-reveal{opacity:1;transform:none}.pp-mosaic .gallery__item img{transition:none}}

/* hero variant: text sits in the sky, people stay visible at the bottom */
.pp-hero--top .pp-hero__img{object-position:center 88%}
.pp-hero--top::after{background:linear-gradient(to bottom,rgba(20,24,19,.72) 0%,rgba(20,24,19,.38) 38%,rgba(20,24,19,0) 62%)}
.pp-hero--top .pp-hero__text{bottom:auto;top:0;padding-top:clamp(28px,5vw,64px);padding-bottom:0}

/* at-a-glance part links */
.glance dt a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.glance dt a:hover{color:var(--accent-dark)}
.glance .actions{flex-wrap:wrap}

/* show the whole group photo on desktop so text stays in the sky above the people */
@media (min-width:901px){
  .pp-hero--top .pp-hero__img{height:auto;aspect-ratio:16/9;max-height:calc(100vh - 76px);min-height:600px;object-position:center bottom}
}
@media (max-width:900px){
  .pp-hero--top .pp-hero__img{height:clamp(620px,calc(100svh - 76px),780px);object-position:60% bottom}
}

/* ---- Registration page options (register/pilgrimage) ---- */
.reg__group{border:0;padding:0;margin:0 0 var(--s3);display:grid;gap:var(--s1)}
.reg__group legend{font-weight:600;margin-bottom:var(--s1);padding:0}
.reg__option{display:flex;gap:var(--s2);align-items:flex-start;padding:var(--s2);border:1px solid rgba(40,60,50,.25);border-radius:2px;cursor:pointer;background:#fff}
.reg__option:has(input:checked){border-color:var(--h-forest,#283C32);box-shadow:inset 0 0 0 1px var(--h-forest,#283C32);background:var(--h-ivory,#F4F0E7)}
.reg__option input{margin-top:.3em}
.reg__option-body{display:flex;flex-direction:column;gap:2px}
.reg__option-body span{font-size:var(--fs-small,.9rem);color:inherit;opacity:.85}
.reg__sum-due strong{font-size:1.25em}
.reg__form textarea{width:100%;font:inherit;padding:.6em .7em;border:1px solid rgba(40,60,50,.3);border-radius:2px;box-sizing:border-box}
.pp-thanks{padding-block:var(--s5,3rem)}
body main > .section + .section:not(.section--sage){border-top:1px solid rgba(40,60,50,.12)}
.pp-thanks__row{display:flex;align-items:center;justify-content:center;gap:var(--s3);flex-wrap:wrap;text-align:left;max-width:640px;margin:0 auto}
.pp-thanks__img{width:160px;height:160px;border-radius:50%;object-fit:cover;display:block}
@media(max-width:560px){.pp-thanks__row{flex-direction:column;text-align:center}}

/* Hero: photo on its own, words sit in a band beneath it */
.pp-hero--top::after{display:none}
@media (min-width:901px){.pp-hero--top .pp-hero__img{aspect-ratio:16/9;height:auto;max-height:calc(100vh - 76px - 180px);min-height:0;object-position:center 70%}}
@media (max-width:900px){.pp-hero--top .pp-hero__img{height:clamp(360px,62svh,560px);object-position:60% 70%}}
.pp-herotext{background:#23291f;color:#fff;padding:clamp(28px,5vw,56px) 0}
.pp-herotext .wrap{text-align:center}
.pp-herotext h1{color:#fff;margin:0 0 var(--s1)}
.pp-herotext .lead{color:#fff;margin:0 0 var(--s1);opacity:.95}
.pp-herotext .pp-hero__date{margin:0 0 var(--s3)}
.pp-herotext .actions{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center}
.pp-herotext .btn--ghost{color:#fff;border-color:#fff}
.pp-herotext .btn--ghost:hover{background:#fff;color:#2f3a2c;border-color:#fff}
/* Intro copy: its own white section, larger and italic */
.pp-intro{background:#fff}
.pp-intro__copy{font-size:clamp(1.25rem,1.05rem + 1vw,1.75rem);line-height:1.55;font-style:italic;max-width:46ch;margin-inline:auto}
/* Part 1 and its Exchange are one continuous white block */


/* ---- Part 1: refined layout (header, three places, itinerary) ---- */
.pp-part .wrap{display:flex;flex-direction:column;gap:clamp(48px,7vw,88px)}
.pp-part__head{text-align:center;max-width:46ch;margin:0 auto}
.pp-part__head h3{font-family:var(--font-head);font-weight:500;font-size:clamp(2.25rem,1.6rem + 2.4vw,3.5rem);line-height:1.1;margin:0 0 var(--s1)}
.pp-part__sub{font-family:var(--font-head);font-style:italic;font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);margin:0;color:var(--muted)}
.pp-stops{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px)}
.pp-stop{display:flex;flex-direction:column;min-width:0}
.pp-stop__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;margin-bottom:var(--s3)}
.pp-stop__when{display:block;font:600 .78rem/1.3 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-dark,#93553C);margin-bottom:var(--s1)}
.pp-stop h4{font-family:var(--font-head);font-weight:500;font-size:1.6rem;line-height:1.2;margin:0 0 var(--s2)}
.pp-stop p{margin:0;font-size:.97rem;line-height:1.7}
.pp-itin{max-width:760px;margin:0 auto;width:100%}
.pp-itin h3{font-family:var(--font-head);font-weight:500;font-size:clamp(1.75rem,1.4rem + 1.2vw,2.4rem);text-align:center;margin:0 0 var(--s1)}
.pp-itin__note{text-align:center;font-style:italic;color:var(--muted);margin:0 0 var(--s4)}
.pp-itin ol{list-style:none;margin:0;padding:0;border-top:1px solid rgba(40,60,50,.2)}
.pp-itin li{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--s3);padding:14px 0;border-bottom:1px solid rgba(40,60,50,.2)}
.pp-itin__day{font:600 .78rem/1.8 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dark,#93553C)}
.pp-arrival{max-width:640px;margin:0 auto;text-align:center}
.pp-arrival h4{font-family:var(--font-head);font-weight:500;font-size:1.5rem;margin:0 0 var(--s1)}
.pp-arrival p{margin:0}
@media(max-width:900px){.pp-stops{grid-template-columns:1fr;max-width:560px;margin:0 auto}}
@media(max-width:480px){.pp-itin li{grid-template-columns:1fr;gap:2px}}
/* Intro copy: slightly smaller, wider, tighter spacing */
.pp-intro{padding-block:clamp(28px,4.5vw,52px)}
.pp-intro .flow{max-width:none}
.pp-intro__copy{font-size:clamp(1.1rem,1rem + .45vw,1.4rem);line-height:1.5;max-width:68ch}
/* Itinerary: its own section, photo beside the list */
.pp-itin-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,88px);align-items:center}
.pp-itin-photo{margin:0}
.pp-itin-photo img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.pp-itin-grid .pp-itin{max-width:none;margin:0}
.pp-itin-grid .pp-itin h3,.pp-itin-grid .pp-itin__note{text-align:left}
.pp-itin-sec .pp-itin ol,.pp-itin-sec .pp-itin li{border-color:rgba(40,60,50,.22)}
@media(max-width:900px){.pp-itin-grid{grid-template-columns:1fr}.pp-itin-photo{max-width:420px;margin:0 auto}}
.glance__more{display:block;margin-top:6px;font-size:.95rem;line-height:1.65;font-weight:400}
.glance h2{text-align:center}
.glance .actions{display:flex;justify-content:center}
.pp-part__lead{max-width:62ch;margin:0 auto;text-align:center;font-size:1.05rem;line-height:1.75}
.pp-part__lead p{margin:0}
/* Three photos across */
.pp-mosaic--row{column-count:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}
.pp-mosaic--row .gallery__item{margin:0}
.pp-mosaic--row .gallery__item img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover}
@media(max-width:700px){.pp-mosaic--row{grid-template-columns:1fr}}
/* Instagram badge in the intro section */
.pp-intro .flow{display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
.pp-ig{display:inline-flex;align-items:center;gap:12px;padding:10px 18px 10px 14px;border:1px solid rgba(40,60,50,.28);border-radius:999px;color:var(--h-forest,#283C32);text-decoration:none;background:#fff;transition:background .2s,border-color .2s}
.pp-ig:hover,.pp-ig:focus-visible{background:var(--h-ivory,#F4F0E7);border-color:var(--h-forest,#283C32)}
.pp-ig__text{display:flex;flex-direction:column;text-align:left;line-height:1.25}
.pp-ig__label{font:600 .72rem/1.3 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--h-terracotta-ink,#93553C)}
.pp-ig__handle{font-size:.95rem}
/* With gratitude: photo left, text right, larger photo */
.pp-thanks__row{flex-wrap:nowrap;justify-content:center;gap:clamp(24px,4vw,48px);max-width:760px;text-align:left}
.pp-thanks__row .flow{flex:1 1 auto;min-width:0;max-width:none}
.pp-thanks__img{width:clamp(180px,18vw,230px);height:clamp(180px,18vw,230px);flex:0 0 auto}
@media(max-width:560px){.pp-thanks__row{flex-direction:column;text-align:center}.pp-thanks__img{width:180px;height:180px}}

.pp-igfeed{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:20px;width:100%;max-width:760px;margin-inline:auto}.pp-igfeed a{display:block;aspect-ratio:1;overflow:hidden;background:#e8e2d4}.pp-igfeed img{width:100%;height:100%;object-fit:cover;transition:transform .4s,opacity .2s}.pp-igfeed a:hover img,.pp-igfeed a:focus-visible img{transform:scale(1.05);opacity:.9}@media(max-width:640px){.pp-igfeed{grid-template-columns:repeat(3,1fr)}}
.pp-intro .pp-intro__copy+.pp-intro__copy{margin-top:-20px}

.pp-igwrap{position:relative;width:100%;max-width:900px;margin:20px auto 0}.pp-igwrap .pp-igfeed{margin-top:0;max-width:none}.pp-igfeed img{filter:brightness(.82)}.pp-igwrap .pp-ig{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px rgba(0,0,0,.28);white-space:nowrap}

.pp-igwrap{margin-top:44px}.pp-igwrap .pp-ig{top:0}

.pp-igwrap .pp-ig{transform:translate(-50%,-66%)}
.pp-band--close::after{background:linear-gradient(to bottom,rgba(20,24,19,.55),rgba(20,24,19,0) 55%)}
.pp-band--close .pp-band__cta{bottom:auto;top:clamp(28px,7vw,84px);padding-bottom:0}
/* Fixed-photo bands: the photo stays put while the page scrolls over it */
.pp-band{clip-path:inset(0);height:clamp(300px,62vw,720px)}
.pp-band--close{height:clamp(440px,70vw,720px)}
.pp-band .pp-band__img{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;object-fit:cover}
@media (prefers-reduced-motion:reduce){.pp-band{clip-path:none}.pp-band .pp-band__img{position:static;height:100%}}
/* Top hero: photo stays fixed under the sticky header while the page scrolls over it */
.pp-hero--top{clip-path:inset(0)}
.pp-hero--top .pp-hero__spacer{visibility:hidden}
.pp-hero--top .pp-hero__fixed{position:fixed;left:0;top:var(--hero-top,76px);width:100%;height:var(--hero-h,60vh);object-fit:cover;object-position:center 70%;display:block}
@media (max-width:900px){.pp-hero--top .pp-hero__fixed{object-position:60% 70%}}
@media (prefers-reduced-motion:reduce){.pp-hero--top{clip-path:none}.pp-hero--top .pp-hero__fixed{position:absolute;inset:0;top:0}}
