/* Procession — Highland Park keepsake and Deerfield family archive.
   Visual overrides only. Load after style.css and procession-core.css. */
body.theme-procession:is(.hp-keepsake, .df-archive) main {
  --hd-heading: var(--pr-ivory);
  --hd-copy: var(--pr-muted);
  --hd-accent: var(--pr-gold);
  --hd-rule: var(--pr-rule);
  color: var(--hd-copy);
  background: var(--pr-forest);
  text-align: center;
}

/* The original city styles force desktop copy left with !important. */
body.theme-procession:is(.hp-keepsake, .df-archive) main :is(h1, h2, h3, h4, p, li, figcaption, .eyebrow) {
  text-align: center !important;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main :is(h1, h2, h3, h4, p, .eyebrow) {
  margin-inline: auto !important;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main :is(h1, h2, h3, h4) {
  color: var(--hd-heading);
  line-height: 1.14;
  text-wrap: balance;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main h1 {
  max-width: 620px;
  margin-bottom: 22px;
  font-size: clamp(2.2rem, 3.8vw, 3.5rem);
}

body.theme-procession:is(.hp-keepsake, .df-archive) main h2 {
  max-width: 780px;
  margin-bottom: 20px;
  font-size: clamp(1.85rem, 3vw, 2.8rem);
}

body.theme-procession:is(.hp-keepsake, .df-archive) main h3 {
  margin-bottom: 12px;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -.025em;
  text-transform: none;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main :is(p, li),
body.theme-procession.hp-keepsake .hp-keepsake-hero__copy > p:not(.eyebrow):not(.hp-keepsake-hero__aside),
body.theme-procession.df-archive .df-archive-hero__copy > p:not(.eyebrow),
body.theme-procession.df-archive .df-manifesto__copy > p:not(.eyebrow):not(.df-manifesto__record),
body.theme-procession.hp-keepsake .hp-pricing__grid article > p:not(.hp-pricing__badge):not(.hp-pricing__qualifier):not(.hp-pricing__price),
body.theme-procession.df-archive .df-photography-pricing__grid article > p:not(.df-photography-pricing__badge):not(.df-photography-pricing__qualifier):not(.df-photography-pricing__price) {
  color: var(--hd-copy);
  font-size: 1rem;
  line-height: 1.7;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main p {
  max-width: 66ch;
  margin-bottom: 20px;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main .eyebrow {
  color: var(--hd-accent);
  font: 700 .72rem/1.55 var(--sans);
  letter-spacing: .12em;
  max-width: 64ch;
  margin-bottom: 16px;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main .button {
  justify-self: center;
  align-self: center;
  max-width: 100%;
  min-height: 48px;
  white-space: normal;
  text-align: center;
  transform: none;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main img {
  display: block;
  width: 100%;
  object-fit: cover;
  filter: none;
  transform: none;
  transition: none;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main :is(figure, article, [class$="__copy"], [class$="__art"]) {
  min-width: 0;
}

body.theme-procession:is(.hp-keepsake, .df-archive) main figcaption {
  color: var(--hd-copy);
  font: 400 .8rem/1.65 var(--sans);
  font-style: normal;
  letter-spacing: 0;
  text-transform: none;
}

body.theme-procession.hp-keepsake :is(.hp-keepsake-hero, .hp-legacy, .hp-process, .hp-pricing),
body.theme-procession.df-archive :is(.df-manifesto, .df-approach, .df-photography-pricing) {
  padding-block: clamp(42px, 5vw, 68px);
  background: var(--pr-forest);
  border-color: var(--hd-rule);
  color: var(--hd-copy);
}

body.theme-procession.hp-keepsake :is(.hp-legacy, .hp-pricing),
body.theme-procession.df-archive :is(.df-manifesto, .df-photography-pricing) {
  --hd-heading: #13342b;
  --hd-copy: #3f5148;
  --hd-accent: #685026;
  --hd-rule: #b9c0b5;
  background: var(--pr-stone);
  color: var(--hd-copy);
}

/* Highland Park: a three-image opening and a paired legacy gallery. */
body.theme-procession.hp-keepsake .hp-keepsake-hero { overflow: visible; }

body.theme-procession.hp-keepsake .hp-keepsake-hero__grid {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  min-height: 0;
  gap: 42px;
}

body.theme-procession.hp-keepsake .hp-keepsake-hero__copy {
  justify-items: center;
  padding: 0;
}

body.theme-procession.hp-keepsake main .hp-keepsake-hero__aside {
  display: block;
  align-self: auto;
  margin-top: 24px;
  margin-bottom: 0;
  padding: 0;
  border: 0;
  color: var(--hd-copy);
  font: 400 .86rem/1.6 var(--sans);
}

body.theme-procession.hp-keepsake .hp-keepsake-hero__art {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  min-height: 0;
  overflow: visible;
}

body.theme-procession.hp-keepsake .hp-keepsake-hero__art figure {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

body.theme-procession.hp-keepsake .hp-keepsake-hero__main { grid-column: 1 / -1; }
body.theme-procession.hp-keepsake .hp-keepsake-hero__art img { height: clamp(135px, 13vw, 175px); }
body.theme-procession.hp-keepsake .hp-keepsake-hero__main img { height: clamp(210px, 23vw, 300px); }

body.theme-procession.hp-keepsake main .hp-keepsake-hero__note {
  position: static;
  inset: auto;
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin: 4px auto 0;
  padding: 0;
  border: 0;
  color: var(--hd-accent);
  font: 500 .72rem/1.45 var(--sans);
  letter-spacing: .08em;
}

body.theme-procession.hp-keepsake .hp-legacy__grid {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(30px, 4vw, 54px);
}

body.theme-procession.hp-keepsake .hp-legacy__gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

body.theme-procession.hp-keepsake .hp-legacy__gallery img,
body.theme-procession.hp-keepsake .hp-legacy__gallery figure:last-child img {
  height: clamp(260px, 29vw, 385px);
}

body.theme-procession.hp-keepsake .hp-legacy__gallery figcaption {
  max-width: 32ch;
  margin: 14px auto 0;
  padding: 0;
  border: 0;
}

body.theme-procession.hp-keepsake .hp-process__grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(30px, 4vw, 54px);
}

body.theme-procession.hp-keepsake .hp-process__steps {
  width: 100%;
  max-width: 600px;
  margin: 28px auto 0;
  padding: 0;
}

body.theme-procession.hp-keepsake .hp-process__steps li {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 10px;
  padding: 22px 4px;
  border-top: 1px solid var(--hd-rule);
}

body.theme-procession.hp-keepsake .hp-process__steps li:not(:last-child)::after { content: none; }

body.theme-procession.hp-keepsake .hp-process__steps li > span {
  display: block;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  color: var(--hd-accent);
  font: 600 .76rem/1.5 var(--sans);
  letter-spacing: .1em;
}

body.theme-procession.hp-keepsake .hp-process__steps p { max-width: 48ch; margin-bottom: 0; }

body.theme-procession.hp-keepsake main .hp-process__record {
  margin-top: 12px;
  margin-bottom: 0;
  padding-top: 20px;
  border-color: var(--hd-rule);
  color: var(--hd-accent);
  font: 500 .78rem/1.65 var(--sans);
  letter-spacing: .04em;
}

body.theme-procession.hp-keepsake .hp-process__image,
body.theme-procession.df-archive .df-manifesto__image {
  margin-inline: auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.theme-procession.hp-keepsake .hp-process__image img,
body.theme-procession.df-archive .df-manifesto__image img {
  height: clamp(320px, 35vw, 450px);
}

body.theme-procession.hp-keepsake .hp-process__image figcaption,
body.theme-procession.df-archive .df-manifesto__image figcaption {
  position: static;
  inset: auto;
  width: auto;
  margin-top: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  writing-mode: horizontal-tb;
}

/* Deerfield: a family archive spread followed by an open three-part approach. */
body.theme-procession.df-archive .df-archive-hero {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: 42px;
  width: min(100% - 80px, 1280px);
  min-height: 0;
  margin-inline: auto;
  padding-block: 40px;
  overflow: visible;
  border: 0;
  background: var(--pr-forest);
}

body.theme-procession.df-archive .df-archive-hero__copy {
  padding: 0;
  justify-items: center;
}

body.theme-procession.df-archive .df-archive-hero__art {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 18px;
  align-items: center;
  min-height: 0;
}

body.theme-procession.df-archive :is(.df-archive-hero__main, .df-archive-hero__inset) {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

body.theme-procession.df-archive .df-archive-hero__main { grid-column: 1 / -1; }
body.theme-procession.df-archive .df-archive-hero__main img { height: clamp(245px, 27vw, 365px); }
body.theme-procession.df-archive .df-archive-hero__inset img { height: clamp(145px, 14vw, 190px); }

body.theme-procession.df-archive .df-archive-hero__note {
  position: static;
  inset: auto;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 12px;
  width: 100%;
}

body.theme-procession.df-archive main .df-archive-hero__note p {
  margin-bottom: 0;
  font: 500 1.12rem/1.4 var(--serif);
  color: var(--hd-heading);
  transform: none;
}

body.theme-procession.df-archive .df-archive-hero__note span {
  display: block;
  padding: 0;
  border: 0;
  color: var(--hd-accent);
  text-align: center;
  font: 500 .72rem/1.55 var(--sans);
  letter-spacing: .06em;
}

body.theme-procession.df-archive .df-manifesto__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(30px, 4vw, 54px);
}

body.theme-procession.df-archive .df-manifesto__copy { width: 100%; max-width: 660px; margin-inline: auto; }

body.theme-procession.df-archive main .df-manifesto__record {
  color: var(--hd-accent);
  margin-top: 24px;
  margin-bottom: 0;
  padding-top: 20px;
  border-color: var(--hd-rule);
  font: 500 .8rem/1.65 var(--sans);
  letter-spacing: .03em;
}

body.theme-procession.df-archive .df-approach__heading {
  margin: 0 auto 34px;
}

body.theme-procession.df-archive .df-approach__steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.theme-procession.df-archive .df-approach__steps article,
body.theme-procession.df-archive .df-approach__steps article:first-child,
body.theme-procession.df-archive .df-approach__steps article:last-child {
  min-height: 0;
  padding: 0 30px;
}

body.theme-procession.df-archive .df-approach__steps article + article { border-color: var(--hd-rule); }

body.theme-procession.df-archive main .df-approach__number {
  color: var(--hd-accent);
  margin-bottom: 18px;
  font: 600 .8rem/1.6 var(--sans);
  letter-spacing: .1em;
}

body.theme-procession.df-archive .df-approach__steps h3::after { content: none; }
body.theme-procession.df-archive .df-approach__steps article > p:last-child { max-width: 36ch; margin-bottom: 0; }

/* The original price copy stays in an open three-column comparison. */
body.theme-procession.hp-keepsake .hp-pricing__grid,
body.theme-procession.df-archive .df-photography-pricing__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--hd-rule);
  background: transparent;
}

body.theme-procession.hp-keepsake .hp-pricing__grid article,
body.theme-procession.df-archive .df-photography-pricing__grid article {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 0;
  padding: 26px 24px;
  border-color: var(--hd-rule);
  background: transparent;
}

body.theme-procession.hp-keepsake .hp-pricing__grid h2,
body.theme-procession.df-archive .df-photography-pricing__grid h2 {
  font-size: clamp(1.65rem, 2.3vw, 2.1rem);
}

body.theme-procession.hp-keepsake main .hp-pricing__qualifier,
body.theme-procession.df-archive main .df-photography-pricing__qualifier {
  margin-bottom: 6px;
  color: var(--hd-copy);
  font: 500 .76rem/1.5 var(--sans);
  letter-spacing: .04em;
}

body.theme-procession.hp-keepsake main .hp-pricing__price,
body.theme-procession.df-archive main .df-photography-pricing__price {
  margin-bottom: 18px;
  color: var(--hd-accent);
  font: 500 clamp(2rem, 2.8vw, 2.8rem)/1.2 var(--serif);
}

body.theme-procession.hp-keepsake main .hp-pricing__badge,
body.theme-procession.df-archive main .df-photography-pricing__badge {
  order: -1;
  min-height: 0;
  margin: 0 auto 16px;
  padding: 4px 12px;
  background: var(--pr-gold);
  color: #102a23;
  font: 600 .73rem/1.5 var(--sans);
  letter-spacing: .03em;
  text-transform: none;
}

body.theme-procession.hp-keepsake .hp-pricing__grid article:not(.hp-pricing__featured)::before,
body.theme-procession.df-archive .df-photography-pricing__grid article:not(.df-photography-pricing__featured)::before {
  content: "";
  display: block;
  flex: 0 0 41px;
}

body.theme-procession.hp-keepsake .hp-pricing__featured > a,
body.theme-procession.df-archive .df-photography-pricing__featured > a {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-top: 14px;
  padding: 10px 4px;
  color: var(--hd-heading);
  font: 600 .88rem/1.6 var(--sans);
  letter-spacing: 0;
  text-transform: none;
  text-underline-offset: 4px;
}

/* Image and closing copy occupy separate areas: no text-on-photo contrast risk. */
body.theme-procession.hp-keepsake .hp-conversation,
body.theme-procession.df-archive .df-conversation {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  min-height: 0;
  padding: 0;
  background: var(--pr-forest);
  color: var(--hd-copy);
}

body.theme-procession.hp-keepsake .hp-conversation::before { content: none; }

body.theme-procession.hp-keepsake .hp-conversation > img,
body.theme-procession.df-archive .df-conversation > img {
  position: static;
  inset: auto;
  height: clamp(290px, 30vw, 400px);
  max-height: 400px;
  min-height: 0;
}

body.theme-procession.hp-keepsake .hp-conversation__inner,
body.theme-procession.df-archive .df-conversation__copy {
  width: 100%;
  min-height: 0;
  padding: 42px clamp(24px, 3.5vw, 52px);
  justify-items: center;
  align-items: center;
}

body.theme-procession.hp-keepsake .hp-conversation__copy {
  width: 100%;
  padding: 0;
  background: transparent;
  text-align: center;
}

@media (max-width: 1000px) {
  body.theme-procession.hp-keepsake :is(.hp-keepsake-hero__grid, .hp-legacy__grid, .hp-process__grid),
  body.theme-procession.df-archive :is(.df-archive-hero, .df-manifesto__grid) {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  body.theme-procession.hp-keepsake .hp-keepsake-hero__art,
  body.theme-procession.df-archive .df-archive-hero__art { width: min(100%, 760px); margin-inline: auto; }
  body.theme-procession.df-archive .df-archive-hero { width: min(100% - 48px, 900px); }
  body.theme-procession.hp-keepsake :is(.hp-legacy__gallery, .hp-process__image),
  body.theme-procession.df-archive .df-manifesto__image { width: min(100%, 700px); margin-inline: auto; }
  body.theme-procession.df-archive .df-approach__steps article,
  body.theme-procession.df-archive .df-approach__steps article:first-child,
  body.theme-procession.df-archive .df-approach__steps article:last-child { padding-inline: 18px; }
}

@media (max-width: 760px) {
  body.theme-procession:is(.hp-keepsake, .df-archive) main .shell,
  body.theme-procession.df-archive .df-archive-hero { width: calc(100% - 40px); }
  body.theme-procession:is(.hp-keepsake, .df-archive) main h1 {
    max-width: 560px;
    font-size: clamp(2.12rem, 8.25vw, 3.1rem);
    line-height: 1.12;
  }
  body.theme-procession:is(.hp-keepsake, .df-archive) main h2 { font-size: clamp(1.8rem, 6.65vw, 2.35rem); }
  body.theme-procession:is(.hp-keepsake, .df-archive) main h3 { font-size: 1.65rem; }
  body.theme-procession.hp-keepsake :is(.hp-keepsake-hero, .hp-legacy, .hp-process, .hp-pricing),
  body.theme-procession.df-archive :is(.df-manifesto, .df-approach, .df-photography-pricing) { padding-block: 38px; }
  body.theme-procession.hp-keepsake .hp-keepsake-hero__copy { padding: 0; }
  body.theme-procession.hp-keepsake .hp-keepsake-hero__art { gap: 12px; }
  body.theme-procession.hp-keepsake .hp-keepsake-hero__art img { height: clamp(100px, 30vw, 175px); }
  body.theme-procession.hp-keepsake .hp-keepsake-hero__main img { height: clamp(200px, 57vw, 290px); }
  body.theme-procession.hp-keepsake .hp-legacy__gallery { gap: 14px; }
  body.theme-procession.hp-keepsake .hp-legacy__gallery img,
  body.theme-procession.hp-keepsake .hp-legacy__gallery figure:last-child img {
    height: clamp(185px, 56vw, 310px);
    max-height: 310px;
  }
  body.theme-procession.hp-keepsake .hp-legacy__gallery figcaption { font-size: .76rem; }
  body.theme-procession.hp-keepsake .hp-process__image img,
  body.theme-procession.df-archive .df-manifesto__image img { height: clamp(270px, 68vw, 340px); max-height: 340px; }
  body.theme-procession.df-archive .df-archive-hero { padding-block: 34px; }
  body.theme-procession.df-archive .df-archive-hero__copy { padding: 0; }
  body.theme-procession.df-archive .df-archive-hero__main img { height: clamp(210px, 57vw, 320px); }
  body.theme-procession.df-archive .df-archive-hero__inset img { height: clamp(145px, 38vw, 210px); }
  body.theme-procession.df-archive .df-approach__steps,
  body.theme-procession.hp-keepsake .hp-pricing__grid,
  body.theme-procession.df-archive .df-photography-pricing__grid { grid-template-columns: 1fr; }
  body.theme-procession.df-archive .df-approach__steps article,
  body.theme-procession.df-archive .df-approach__steps article:first-child,
  body.theme-procession.df-archive .df-approach__steps article:last-child { padding: 26px 4px; }
  body.theme-procession.df-archive .df-approach__steps article + article,
  body.theme-procession.hp-keepsake .hp-pricing__grid article + article,
  body.theme-procession.df-archive .df-photography-pricing__grid article + article {
    border-left: 0;
    border-top: 1px solid var(--hd-rule);
  }
  body.theme-procession.hp-keepsake .hp-pricing__grid article,
  body.theme-procession.df-archive .df-photography-pricing__grid article { padding: 28px 6px; }
  body.theme-procession.hp-keepsake .hp-pricing__grid article:not(.hp-pricing__featured)::before,
  body.theme-procession.df-archive .df-photography-pricing__grid article:not(.df-photography-pricing__featured)::before { content: none; }
  body.theme-procession.hp-keepsake .hp-conversation,
  body.theme-procession.df-archive .df-conversation { grid-template-columns: 1fr; }
  body.theme-procession.hp-keepsake .hp-conversation > img,
  body.theme-procession.df-archive .df-conversation > img { height: clamp(200px, 55vw, 300px); }
  body.theme-procession.hp-keepsake main .hp-conversation__inner,
  body.theme-procession.df-archive main .df-conversation__copy { width: calc(100% - 40px); padding: 38px 0; }
}

@media (max-width: 360px) {
  body.theme-procession:is(.hp-keepsake, .df-archive) main .shell,
  body.theme-procession.df-archive .df-archive-hero,
  body.theme-procession.hp-keepsake main .hp-conversation__inner,
  body.theme-procession.df-archive main .df-conversation__copy { width: calc(100% - 32px); }
  body.theme-procession:is(.hp-keepsake, .df-archive) main .button { width: 100%; padding-inline: 14px; }
}
