/* A quiet, editorial gallery using the site's existing cream, teal and gold. */
.impressions-page { background: var(--brand-cream); }
.impressions-page ~ .site-footer { background: var(--brand-stone-pale); }
html:has(.impressions-page) { background: var(--brand-stone-pale); }
.impressions-page > .container,
.impressions-invitation .container { width: min(calc(100% - 6rem), 76rem); }
.impressions-intro {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  align-items: end;
  gap: clamp(3rem, 8vw, 9rem);
  padding-block: clamp(4rem, 7vw, 7rem) clamp(3rem, 6vw, 5.5rem);
}
.impressions-eyebrow {
  margin: 0 0 1.5rem;
  color: var(--brand-teal-deep);
  font: 500 1rem/1.5 var(--font-sans);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.impressions-intro h1 {
  margin: 0;
  color: var(--brand-text);
  font: 400 clamp(3rem, 5.4vw, 5.2rem)/1.08 var(--font-display);
  letter-spacing: -.035em;
  text-transform: none;
}
.impressions-intro h1 em,
.impressions-invitation h2 em { color: var(--brand-teal-deep); font-weight: 400; }
.impressions-intro__copy { padding-bottom: .35rem; }
.impressions-intro__copy p { margin: 0 0 1.75rem; color: var(--brand-text-mid); font-size: 1.0625rem; line-height: 1.85; }
.impressions-intro__jump { display: inline-flex; gap: 1.5rem; align-items: center; font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; }
.impressions-intro__jump span { color: var(--brand-teal-deep); font-size: 1.25rem; }
.impressions-gallery { padding-bottom: clamp(4rem, 8vw, 8rem); scroll-margin-top: 6rem; }
.impressions-gallery .wp-block-gallery.has-nested-images {
  --mosaic-row: clamp(11rem, 20vw, 19rem);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(4, var(--mosaic-row)) clamp(16rem, 30vw, 26rem) repeat(2, var(--mosaic-row));
  gap: clamp(.75rem, 1.75vw, 1.5rem);
  margin: 0;
}
.impressions-gallery .wp-block-gallery.has-nested-images > figure.wp-block-image {
  position: relative;
  display: block;
  width: auto !important;
  height: 100%;
  min-height: 0;
  margin: 0 !important;
  overflow: hidden;
  background: var(--brand-card);
}
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(1) { grid-column: 1 / span 8; grid-row: 1 / span 2; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(2) { grid-column: 9 / span 4; grid-row: 1; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(3) { grid-column: 9 / span 4; grid-row: 2; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(4) { grid-column: 1 / span 4; grid-row: 3 / span 2; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(5) { grid-column: 5 / span 8; grid-row: 3 / span 2; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(6) { grid-column: 1 / -1; grid-row: 5; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(7) { grid-column: 1 / span 8; grid-row: 6 / span 2; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(8) { grid-column: 9 / span 4; grid-row: 6 / span 2; }
.impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image a { display: block; width: 100%; height: 100%; }
.impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image img {
  display: block;
  width: 100%;
  height: 100% !important;
  max-height: none;
  object-fit: cover;
  transition: transform 400ms ease;
}
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(1) img { object-position: 40% 50%; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(4) img { object-position: 50% 20%; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(6) img { object-position: 50% 20%; }
.impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(7) img { object-position: 40% 50%; }
.impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  max-height: none;
  margin: 0;
  padding: 2.5rem 1.25rem 1rem;
  background: linear-gradient(transparent, rgb(25 29 25 / 70%));
  color: var(--brand-cream);
  font: 400 .9375rem/1.4 var(--font-sans);
  text-align: left;
  pointer-events: none;
}
.impressions-gallery a:hover img { transform: scale(1.025); }
.impressions-gallery a:focus-visible { outline: 3px solid var(--brand-gold); outline-offset: -4px; }
.impressions-invitation { padding-block: clamp(3rem, 6vw, 5rem); background: var(--brand-warm); border-top: 1px solid var(--brand-stone-pale); }
.impressions-invitation__inner { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; }
.impressions-invitation h2 { margin: 0; font: 400 clamp(2rem, 3.3vw, 3rem)/1.2 var(--font-display); }
.impressions-invitation__inner > div > p:not(.impressions-eyebrow) { margin: 0 0 1.5rem; color: var(--brand-text-mid); font-size: 1.125rem; line-height: 1.7; }
.impressions-invitation .button { max-width: 100%; font-size: 1rem; line-height: 1.25; letter-spacing: .12em; text-align: center; }
.impressions-lightbox {
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: min(94vw, 80rem);
  max-width: none;
  max-height: 94dvh;
  margin: auto;
  padding: 3.75rem 2rem 1rem;
  border: 1px solid var(--brand-stone-pale);
  background: var(--brand-cream);
  color: var(--brand-text);
}
.impressions-lightbox::backdrop { background: rgb(22 26 23 / 88%); }
.impressions-lightbox figure { margin: 0; text-align: center; }
.impressions-lightbox figure img { display: block; width: 100%; height: min(66dvh, 48rem); object-fit: contain; }
.impressions-lightbox figure figcaption { min-height: 1.5em; margin-top: 1rem; color: var(--brand-text-mid); }
.impressions-lightbox button { display: grid; width: 2.75rem; height: 2.75rem; padding: 0; place-items: center; border: 1px solid var(--brand-stone); background: transparent; color: var(--brand-text); font: 400 1.5rem var(--font-sans); cursor: pointer; }
.impressions-lightbox button:focus-visible { outline: 2px solid var(--brand-teal-deep); outline-offset: 3px; }
.impressions-lightbox .impressions-lightbox__close { position: absolute; top: .5rem; right: .5rem; border: 0; font-size: 2rem; }
.impressions-lightbox__controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: .75rem; }
.impressions-lightbox__controls p { min-width: 4rem; margin: 0; font-size: .875rem; text-align: center; }
html:has(.impressions-lightbox[open]) { overflow: hidden; }
@media (max-width: 900px) {
  .impressions-page > .container,
  .impressions-invitation .container { width: calc(100% - 3rem); }
  .impressions-intro { grid-template-columns: 1fr; gap: 2rem; padding-top: 3rem; }
  .impressions-intro__copy { max-width: 34rem; }
  .impressions-gallery .wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(7, clamp(12rem, 33vw, 19rem)); }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(1) { grid-column: 1 / -1; grid-row: 1 / span 2; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(2) { grid-column: 1; grid-row: 3; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(3) { grid-column: 2; grid-row: 3; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(4) { grid-column: 1; grid-row: 4 / span 2; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(5) { grid-column: 2; grid-row: 4; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(6) { grid-column: 2; grid-row: 5; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(7) { grid-column: 1; grid-row: 6 / span 2; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure:nth-child(8) { grid-column: 2; grid-row: 6 / span 2; }
  .impressions-invitation__inner { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 560px) {
  .impressions-page > .container,
  .impressions-invitation .container { width: calc(100% - 2rem); }
  .impressions-intro { padding-top: 2.5rem; }
  .impressions-gallery .wp-block-gallery.has-nested-images { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: auto; gap: 1rem; }
  .impressions-gallery .wp-block-gallery.has-nested-images > figure.wp-block-image:nth-child(n) { grid-column: 1; grid-row: auto; height: auto; aspect-ratio: auto; }
  .impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image a { height: auto; }
  .impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image img { height: auto !important; }
  .impressions-lightbox { width: 96vw; padding-inline: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .impressions-gallery .wp-block-gallery.has-nested-images figure.wp-block-image img { transition: none; }
}
