/* Procession — Waukegan and Zion. Route-scoped selectors outrank Waukegan's later inline CSS. */
body.theme-procession:is(.wk-held,.zion-archive) main {
  --wz-copy: #3f5148;
  --wz-accent: #705729;
  background: var(--pr-stone);
  color: var(--pr-forest);
  overflow: visible;
}
body.theme-procession.wk-held main {
  --wk-ivory: var(--pr-ivory);
  --wk-paper: var(--pr-stone);
  --wk-navy: var(--pr-forest);
  --wk-ink: var(--pr-forest);
  --wk-gold: var(--pr-gold);
  --wk-muted: #3f5148;
}
body.theme-procession:is(.wk-held,.zion-archive) main :is(h1,h2,h3,p,li,small,figcaption) { text-align: center; }
body.theme-procession:is(.wk-held,.zion-archive) main :is(h1,h2,h3) { color: inherit; margin-inline: auto; line-height: 1.15; letter-spacing: -.03em; }
body.theme-procession:is(.wk-held,.zion-archive) main h1 { font-size: clamp(2.3rem,4.2vw,3.7rem); margin-bottom: 1.3rem; max-width: 740px; }
body.theme-procession:is(.wk-held,.zion-archive) main h2 { font-size: clamp(1.9rem,3.1vw,2.85rem); max-width: 920px; margin-bottom: 1.25rem; }
body.theme-procession:is(.wk-held,.zion-archive) main h3 { font-size: clamp(1.45rem,2vw,1.9rem); margin-bottom: .7rem; }
body.theme-procession:is(.wk-held,.zion-archive) main :is(p,li,small) { color: var(--wz-copy); font-size: 1rem; line-height: 1.75; }
body.theme-procession:is(.wk-held,.zion-archive) main p { margin-inline: auto; max-width: 68ch; }
body.theme-procession:is(.wk-held,.zion-archive) main .eyebrow { color: var(--wz-accent); font: 700 .74rem/1.6 var(--sans); letter-spacing: .12em; margin: 0 auto 1rem; text-align: center; }
body.theme-procession:is(.wk-held,.zion-archive) main :is(section,.za-related) { padding-block: clamp(3rem,5.5vw,5rem); border-color: #c6cbbd; }
body.theme-procession:is(.wk-held,.zion-archive) main :is(.shell,.narrow) > * { min-width: 0; }
body.theme-procession:is(.wk-held,.zion-archive) main .button-row { justify-content: center; }

body.theme-procession.wk-held main :is(.wk-hero,.wk-coverage,.wk-conversation),
body.theme-procession.zion-archive main :is(.za-hero,.za-boundaries,.za-closing) {
  --wz-copy: var(--pr-muted);
  --wz-accent: var(--pr-gold);
  background: var(--pr-forest);
  color: var(--pr-ivory);
  border-color: var(--pr-rule);
}
body.theme-procession.wk-held main :is(.wk-intro,.wk-record,.wk-planning,.wk-privacy,.wk-pricing,.wk-faq,.wk-more),
body.theme-procession.zion-archive main :is(.za-record,.za-story,.za-process,.za-planning,.za-pricing,.za-faq,.za-related) { background: var(--pr-stone); color: var(--pr-forest); }

/* Waukegan retains a three-frame opening and staggered image/story rows. */
body.theme-procession.wk-held main .wk-hero__grid { grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,4vw,4rem); }
body.theme-procession.wk-held main .wk-hero__copy { width: 100%; max-width: 650px; }
body.theme-procession.wk-held main .wk-hero__copy > p:not(.eyebrow) { max-width: 53ch; font-size: 1rem; }
body.theme-procession.wk-held main .wk-hero__images { gap: .65rem; padding-left: 1.5rem; border-color: var(--pr-rule); }
body.theme-procession.wk-held main .wk-hero__images img { height: auto; max-height: 155px; aspect-ratio: 2.3; object-fit: cover; }
body.theme-procession.wk-held main .wk-intro { padding-bottom: 2rem; }
body.theme-procession.wk-held main .wk-record { padding-top: 1rem; }
body.theme-procession.wk-held main .wk-record__rows { gap: 2rem; }
body.theme-procession.wk-held main .wk-record__row,
body.theme-procession.wk-held main .wk-record__row:nth-child(2) { width: min(100%,1000px); grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.5rem; }
body.theme-procession.wk-held main .wk-record__row:nth-child(3) { margin-left: 0; justify-self: center; }
body.theme-procession.wk-held main .wk-record__row img { height: auto; max-height: 220px; aspect-ratio: 2.2; object-fit: cover; }
body.theme-procession.wk-held main .wk-record__copy,
body.theme-procession.wk-held main .wk-record__row:nth-child(2) .wk-record__copy { text-align: center; }
body.theme-procession.wk-held main .wk-record__copy h3 { font-size: clamp(1.8rem,2.8vw,2.5rem); }
body.theme-procession.wk-held main .wk-record__copy p,
body.theme-procession.wk-held main .wk-record__row:nth-child(2) .wk-record__copy p { margin-inline: auto; }
body.theme-procession.wk-held main .wk-coverage { padding-block: 0; }
body.theme-procession.wk-held main .wk-coverage__grid { grid-template-columns: 1fr 1.1fr; max-width: 1440px; margin-inline: auto; align-items: stretch; }
body.theme-procession.wk-held main .wk-coverage__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,4vw,4rem); }
body.theme-procession.wk-held main .wk-coverage__list { border-color: var(--pr-rule); }
body.theme-procession.wk-held main .wk-coverage__list li { border-color: var(--pr-rule); font: 500 1.25rem/1.65 var(--serif); padding-block: .85rem; }
body.theme-procession.wk-held main .wk-coverage__media { --wz-copy: #3f5148; background: var(--pr-stone); color: var(--pr-forest); padding: clamp(2rem,4vw,4rem); }
body.theme-procession.wk-held main .wk-coverage__media img { height: auto; max-height: 390px; aspect-ratio: 1.65; object-fit: cover; }
body.theme-procession.wk-held main .wk-planning h2 { margin-bottom: 2rem; }
body.theme-procession.wk-held main .wk-planning__column { padding-inline: 2rem; border-color: #c6cbbd; }
body.theme-procession.wk-held main .wk-planning__column li { max-width: 42ch; margin-inline: auto; }
body.theme-procession.wk-held main .wk-privacy { border-block: 1px solid #c6cbbd; }
body.theme-procession.wk-held main .wk-privacy__grid { gap: 0; margin-bottom: 1.5rem; }
body.theme-procession.wk-held main .wk-privacy__grid p { padding: .75rem 1.5rem; border-color: #c6cbbd; font: 500 1.2rem/1.55 var(--serif); }
body.theme-procession.wk-held main .wk-text-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding-block: .65rem; color: #254c40; font-size: .88rem; line-height: 1.6; letter-spacing: 0; text-transform: none; text-align: center; }
body.theme-procession.wk-held main .wk-pricing h2 { margin-bottom: 2rem; }
body.theme-procession.wk-held main .wk-pricing__grid { grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid #c6cbbd; margin-bottom: 1.5rem; }
body.theme-procession.wk-held main .wk-price { padding: 2rem 1.5rem; border-color: #c6cbbd; }
body.theme-procession.wk-held main .wk-price__qualifier { font-size: .77rem; margin-bottom: .25rem; }
body.theme-procession.wk-held main .wk-price__amount { color: #705729; font: 500 clamp(2rem,3vw,2.9rem)/1.2 var(--serif); margin: .3rem auto 1rem; }
body.theme-procession.wk-held main .wk-price__badge { padding: .35rem .75rem; background: var(--pr-gold); color: var(--pr-forest); font: 700 .7rem/1.5 var(--sans); letter-spacing: .08em; }
body.theme-procession.wk-held main .wk-more { border-top: 1px solid #c6cbbd; }
body.theme-procession.wk-held main .wk-more__rows { border-color: #c6cbbd; }
body.theme-procession.wk-held main .wk-more__row { grid-template-columns: minmax(0,.6fr) minmax(0,1.25fr) minmax(80px,.3fr); gap: 2rem; padding-block: 1.5rem; border-color: #c6cbbd; }
body.theme-procession.wk-held main .wk-more__row img { height: auto; max-height: 130px; aspect-ratio: 2.2; }
body.theme-procession.wk-held main .wk-more__row > span:last-child { color: #705729; font-size: .78rem; text-align: center; }
body.theme-procession.wk-held main .wk-more__links a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding-block: .5rem; color: #254c40; text-align: center; }

/* Zion retains the multi-image family archive and columned editorial record. */
body.theme-procession.zion-archive main .za-hero__grid { grid-template-columns: .9fr 1.1fr; gap: clamp(2rem,4vw,4rem); }
body.theme-procession.zion-archive main .za-hero__copy { display: grid; justify-items: center; min-width: 0; }
body.theme-procession.zion-archive main .za-hero__copy > p:not(.eyebrow) { font-size: 1rem; max-width: 54ch; }
body.theme-procession.zion-archive main .za-hero__archive { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; padding: 0; border: 0; }
body.theme-procession.zion-archive main .za-hero__archive picture { background: transparent; }
body.theme-procession.zion-archive main .za-hero__archive img { height: 145px; max-height: 145px; filter: none; }
body.theme-procession.zion-archive main .za-hero__main { grid-column: 1 / -1; }
body.theme-procession.zion-archive main .za-hero__main img { height: 250px; max-height: 250px; }
body.theme-procession.zion-archive main .za-hero__archive figcaption { grid-column: 1 / -1; color: var(--pr-gold); padding: .45rem 0 0; font-size: .7rem; letter-spacing: .12em; line-height: 1.6; }
body.theme-procession.zion-archive main .za-record__grid { grid-template-columns: minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr); gap: 2rem; }
body.theme-procession.zion-archive main .za-record__grid > * + * { padding-left: 2rem; border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-record__thought p { color: var(--pr-forest); font: italic 500 clamp(1.5rem,2.3vw,2rem)/1.45 var(--serif); }
body.theme-procession.zion-archive main .za-record__thought span { display: block; color: #705729; font-size: .72rem; line-height: 1.6; text-align: center; }
body.theme-procession.zion-archive main .za-section-heading { max-width: 980px; margin: 0 auto 2.5rem; }
body.theme-procession.zion-archive main .za-story__grid { gap: 2rem; }
body.theme-procession.zion-archive main .za-story__grid img { height: auto; max-height: 260px; aspect-ratio: 1.5; filter: none; }
body.theme-procession.zion-archive main .za-process__grid { border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-process__grid article { padding: 1.75rem 1.25rem; border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-process__link { margin: 1.5rem auto 0; }
body.theme-procession.zion-archive main .za-process__link a,
body.theme-procession.zion-archive main .za-boundaries__copy a { display: inline-flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem; min-height: 44px; padding-block: .65rem; font-size: .88rem; line-height: 1.6; letter-spacing: 0; text-transform: none; text-align: center; }
body.theme-procession.zion-archive main .za-process__link a { color: #254c40; }
body.theme-procession.zion-archive main .za-boundaries__copy a { color: var(--pr-ivory); }
body.theme-procession.zion-archive main .za-boundaries__grid { grid-template-columns: .9fr 1.1fr; gap: 2.5rem; align-items: center; }
body.theme-procession.zion-archive main .za-boundaries__copy { padding-right: 2rem; border-color: var(--pr-rule); }
body.theme-procession.zion-archive main .za-boundaries__list { border-color: var(--pr-rule); }
body.theme-procession.zion-archive main .za-boundaries__list article { grid-template-columns: minmax(0,1fr); gap: .5rem; padding: 1.5rem .5rem; border-color: var(--pr-rule); }
body.theme-procession.zion-archive main .za-boundaries__list h3 { color: var(--pr-gold); font: 600 .88rem/1.6 var(--sans); letter-spacing: .06em; }
body.theme-procession.zion-archive main .za-planning__grid { grid-template-columns: minmax(0,1.15fr) minmax(0,.6fr) minmax(0,.85fr); gap: 2rem; }
body.theme-procession.zion-archive main .za-planning figure img { height: auto; max-height: 390px; aspect-ratio: .85; filter: none; }
body.theme-procession.zion-archive main .za-planning__checklist { padding-left: 1.5rem; border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-planning__checklist li { padding: .8rem 0; border-color: #c6cbbd; text-align: center; }
body.theme-procession.zion-archive main .za-pricing__heading { grid-template-columns: minmax(0,1fr); gap: 1rem; max-width: 920px; margin: 0 auto 2.5rem; justify-items: center; }
body.theme-procession.zion-archive main .za-pricing__heading > p,
body.theme-procession.zion-archive main .za-pricing__heading .button { grid-column: auto; grid-row: auto; }
body.theme-procession.zion-archive main .za-pricing .button-secondary { background: transparent; color: var(--pr-forest); border-color: #705729; }
body.theme-procession.zion-archive main .za-pricing .button-secondary:hover { background: var(--pr-gold); color: var(--pr-forest); }
body.theme-procession.zion-archive main .za-pricing__grid { border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-pricing__grid article { min-height: 0; padding: 2rem 1.5rem; border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-pricing__price { color: #705729; font: 500 clamp(2rem,3vw,2.9rem)/1.2 var(--serif); margin: .35rem auto 1rem; }
body.theme-procession.zion-archive main .za-pricing__featured { background: #e3e8de; }
body.theme-procession.zion-archive main .za-pricing__badge { display: inline-block; background: var(--pr-gold); color: var(--pr-forest); padding: .35rem .75rem; font: 700 .7rem/1.5 var(--sans); letter-spacing: .08em; margin-bottom: .8rem; }
body.theme-procession.zion-archive main .za-faq__columns { gap: 2.5rem; }
body.theme-procession.zion-archive main .za-related__grid { border-color: #c6cbbd; }
body.theme-procession.zion-archive main .za-related__grid a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 150px; border-color: #c6cbbd; padding: 1.5rem; color: var(--pr-forest); text-align: center; }
body.theme-procession.zion-archive main .za-related__grid a:hover { background: #e3e8de; }
body.theme-procession.zion-archive main .za-related__grid span { font-size: 1.5rem; line-height: 1.3; }
body.theme-procession.zion-archive main .za-related__grid small { font-size: .95rem; }
body.theme-procession.zion-archive main .za-closing { padding-block: 0; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; }
body.theme-procession.zion-archive main .za-closing img { height: auto; max-height: 460px; aspect-ratio: 1.45; filter: none; }
body.theme-procession.zion-archive main .za-closing__copy { justify-items: center; padding: clamp(2rem,4vw,4rem); }

/* Original FAQ controls keep their script-owned aria-expanded and hidden states. */
body.theme-procession:is(.wk-held,.zion-archive) main .faq-list { border-color: #c6cbbd; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-item { border-color: #c6cbbd; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-item h3 { margin: 0; max-width: none; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-question { min-height: 64px; padding: 1.25rem 2.5rem; color: var(--pr-forest); font: 500 1.1rem/1.5 var(--serif); text-align: center; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-question::after { top: 50%; right: .65rem; transform: translateY(-50%); line-height: 1; color: #526a58; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-question:is(:hover,[aria-expanded='true']) { background: #e3e8de; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-question:focus-visible { outline: 3px solid var(--pr-forest); outline-offset: -3px; box-shadow: none; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-answer { width: 100%; max-width: 780px; padding: .5rem 1rem 1.6rem; margin-inline: auto; text-align: center; }
body.theme-procession:is(.wk-held,.zion-archive) main .faq-answer p { color: #3f5148; margin: 0 auto; text-align: center; }

@media (max-width: 1100px) {
  body.theme-procession.zion-archive main .za-record__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.theme-procession.zion-archive main .za-record__copy { grid-column: 1 / -1; border-color: #c6cbbd; padding-top: 2rem; }
  body.theme-procession.zion-archive main .za-planning__grid { grid-template-columns: 1fr .6fr; }
  body.theme-procession.zion-archive main .za-planning__checklist { grid-column: 1 / -1; padding: 2rem 0 0; border-left: 0; border-color: #c6cbbd; }
}

@media (max-width: 1023px) {
  body.theme-procession.wk-held main .wk-hero__grid,
  body.theme-procession.zion-archive main :is(.za-hero__grid,.za-boundaries__grid) { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  body.theme-procession.wk-held main .wk-hero__images { width: min(100%,650px); margin-inline: auto; padding: 1.5rem 0 0; border-left: 0; border-top: 1px solid var(--pr-rule); }
  body.theme-procession.wk-held main .wk-hero__images img { max-height: 135px; }
  body.theme-procession.wk-held main .wk-coverage__grid { grid-template-columns: minmax(0,1fr); }
  body.theme-procession.wk-held main .wk-coverage__copy,
  body.theme-procession.wk-held main .wk-coverage__media { width: 100%; padding: 2.5rem; }
  body.theme-procession.wk-held main .wk-coverage__media picture { display: block; width: min(100%,700px); margin-inline: auto; }
  body.theme-procession.zion-archive main .za-hero__archive { max-width: 650px; margin-inline: auto; }
  body.theme-procession.zion-archive main .za-boundaries__copy { padding: 0 0 2rem; border-right: 0; border-bottom: 1px solid var(--pr-rule); }
}

@media (max-width: 760px) {
  body.theme-procession:is(.wk-held,.zion-archive) main :is(.shell,.narrow) { width: calc(100% - 32px); }
  body.theme-procession:is(.wk-held,.zion-archive) main :is(section,.za-related) { padding-block: 2.75rem; }
  body.theme-procession:is(.wk-held,.zion-archive) main h1 { font-size: clamp(2.15rem,8.6vw,3rem); max-width: 600px; }
  body.theme-procession:is(.wk-held,.zion-archive) main h2 { font-size: clamp(1.8rem,6.5vw,2.4rem); max-width: 620px; }
  body.theme-procession:is(.wk-held,.zion-archive) main h3 { font-size: 1.55rem; }
  body.theme-procession:is(.wk-held,.zion-archive) main .faq-question { padding-inline: 2rem; }
  body.theme-procession:is(.wk-held,.zion-archive) main .faq-answer { padding-inline: .5rem; }
  body.theme-procession.wk-held main .wk-hero__images { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
  body.theme-procession.wk-held main .wk-hero__images picture:first-child { grid-column: 1 / -1; }
  body.theme-procession.wk-held main .wk-hero__images img { max-height: 100px; aspect-ratio: 1.8; }
  body.theme-procession.wk-held main .wk-hero__images picture:first-child img { max-height: 150px; aspect-ratio: 2.4; }
  body.theme-procession.wk-held main .wk-intro { padding-bottom: 1.5rem; }
  body.theme-procession.wk-held main .wk-record { padding-top: 1rem; }
  body.theme-procession.wk-held main .wk-record__row,
  body.theme-procession.wk-held main .wk-record__row:nth-child(2) { grid-template-columns: minmax(0,1fr); gap: 1.25rem; max-width: 540px; justify-self: center; }
  body.theme-procession.wk-held main .wk-record__row picture,
  body.theme-procession.wk-held main .wk-record__row:nth-child(2) picture { order: 1; }
  body.theme-procession.wk-held main .wk-record__copy,
  body.theme-procession.wk-held main .wk-record__row:nth-child(2) .wk-record__copy { order: 2; }
  body.theme-procession.wk-held main .wk-record__row img { max-height: 200px; }
  body.theme-procession.wk-held main .wk-coverage { padding-block: 0; }
  body.theme-procession.wk-held main .wk-coverage__copy,
  body.theme-procession.wk-held main .wk-coverage__media { padding: 2.5rem 1rem; }
  body.theme-procession.wk-held main .wk-coverage__media img { max-height: 300px; }
  body.theme-procession.wk-held main :is(.wk-planning__grid,.wk-privacy__grid,.wk-pricing__grid) { grid-template-columns: minmax(0,1fr); }
  body.theme-procession.wk-held main .wk-planning__column { padding-inline: 0; }
  body.theme-procession.wk-held main .wk-planning__column + .wk-planning__column { padding-top: 1.75rem; border-left: 0; border-top: 1px solid #c6cbbd; }
  body.theme-procession.wk-held main .wk-privacy__grid p { padding: 1.25rem .5rem; margin: 0; border-left: 0; border-top: 1px solid #c6cbbd; }
  body.theme-procession.wk-held main .wk-privacy__grid p:first-child { border-top: 0; }
  body.theme-procession.wk-held main .wk-price { padding: 1.75rem .75rem; }
  body.theme-procession.wk-held main .wk-price + .wk-price { border-left: 0; border-top: 1px solid #c6cbbd; }
  body.theme-procession.wk-held main .wk-more__row { grid-template-columns: minmax(0,1fr); gap: 1rem; padding-block: 1.5rem; }
  body.theme-procession.wk-held main .wk-more__row img { max-height: 160px; }
  body.theme-procession.zion-archive main .za-hero__archive { gap: .5rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.theme-procession.zion-archive main .za-hero__main img { height: clamp(140px,45vw,180px); max-height: 180px; }
  body.theme-procession.zion-archive main .za-hero__archive picture:not(.za-hero__main) img { height: 92px; max-height: 92px; }
  body.theme-procession.zion-archive main .za-hero__archive figcaption { font-size: .65rem; }
  body.theme-procession.zion-archive main .za-record__grid { grid-template-columns: minmax(0,1fr); }
  body.theme-procession.zion-archive main .za-record__grid > * + * { min-height: 0; padding: 1.5rem 0 0; border-left: 0; border-top: 1px solid #c6cbbd; }
  body.theme-procession.zion-archive main .za-record__thought p { font-size: 1.65rem; }
  body.theme-procession.zion-archive main .za-story__grid img { height: auto; max-height: 280px; aspect-ratio: 1.5; }
  body.theme-procession.zion-archive main .za-process__grid article { padding: 1.5rem .75rem; }
  body.theme-procession.zion-archive main .za-planning__grid { grid-template-columns: minmax(0,1fr); }
  body.theme-procession.zion-archive main .za-planning figure { width: min(100%,400px); margin-inline: auto; }
  body.theme-procession.zion-archive main .za-planning figure img { height: auto; max-height: 300px; aspect-ratio: 1.25; }
  body.theme-procession.zion-archive main .za-planning__checklist { grid-column: auto; }
  body.theme-procession.zion-archive main .za-planning__checklist ul { columns: 1; }
  body.theme-procession.zion-archive main .za-pricing__grid article { padding: 1.75rem 1rem; }
  body.theme-procession.zion-archive main .za-faq__columns { gap: 0; }
  body.theme-procession.zion-archive main .za-related__grid a { min-height: 0; padding: 1.5rem 1rem; }
  body.theme-procession.zion-archive main .za-closing { grid-template-columns: minmax(0,1fr); padding-block: 0; }
  body.theme-procession.zion-archive main .za-closing img { height: auto; max-height: 300px; aspect-ratio: 1.6; }
  body.theme-procession.zion-archive main .za-closing__copy { padding: 2.75rem 1rem; }
}
