.rz-page {
  overflow: clip;
}

.rz-page .section-index {
  margin-bottom: var(--space-4);
}

.rz-page a:focus-visible,
.rz-page button:focus-visible {
  outline: 2px solid var(--color-focus-copper);
  outline-offset: 3px;
}

.rz-hero {
  position: relative;
  min-height: 47.5rem;
  isolation: isolate;
  background: var(--color-obsidian);
}

.rz-hero__image,
.rz-hero__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.rz-hero__image {
  object-fit: cover;
  object-position: center right;
}

.rz-hero__shade {
  z-index: 1;
  background: linear-gradient(90deg, rgb(8 9 13 / 94%) 0%, rgb(8 9 13 / 79%) 40%, rgb(8 9 13 / 20%) 76%, rgb(8 9 13 / 34%) 100%);
}

.rz-hero__container {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  min-height: 47.5rem;
  padding-top: var(--space-9);
  padding-bottom: var(--space-9);
}

.rz-hero__panel {
  display: flex;
  flex: 0 1 32.5rem;
  min-width: 26.25rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: var(--space-6);
  border-left: 1px solid var(--color-aged-copper);
  background: rgb(8 9 13 / 52%);
}

.rz-hero__panel h1,
.rz-hero__panel p,
.rz-hero__panel .section-index {
  margin: 0;
}

.rz-hero__panel .lead {
  max-width: 34ch;
}

.rz-hero__note {
  max-width: 52ch;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-aged-copper);
}

.rz-formats__grid {
  display: grid;
  grid-template-columns: minmax(0, 30fr) minmax(3rem, 10fr) minmax(37.5rem, 60fr);
  align-items: start;
}

.rz-formats__intro {
  grid-column: 1;
  min-width: 0;
  max-width: 20.625rem;
}

.rz-formats__intro p {
  max-width: 34ch;
}

.rz-formats__list {
  display: flex;
  grid-column: 3;
  min-width: 0;
  flex-direction: column;
  border-top: var(--border-structural);
}

.rz-format {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  min-width: 0;
  gap: var(--space-4);
  padding-block: var(--space-6);
  border-bottom: var(--border-structural);
}

.rz-format__number,
.rz-stage__index,
.rz-occasion > span,
.rz-direction > span {
  color: var(--color-aged-copper);
  font-size: var(--text-micro);
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: var(--leading-micro);
  text-transform: uppercase;
}

.rz-format__content {
  min-width: 0;
  max-width: 58ch;
}

.rz-format__content h3,
.rz-format__content p:last-child {
  margin-bottom: 0;
}

.rz-host__grid {
  display: grid;
  grid-template-columns: minmax(0, 41fr) minmax(3rem, 7fr) minmax(26.25rem, 52fr);
  align-items: start;
}

.rz-host__copy {
  display: flex;
  grid-column: 1;
  min-width: 0;
  max-width: 31.25rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding-right: var(--space-7);
  border-right: 1px solid var(--color-aged-copper);
}

.rz-host__copy h2,
.rz-host__copy p,
.rz-host__copy .section-index,
.rz-host__copy .button {
  margin: 0;
}

.rz-host__copy .lead {
  max-width: 42ch;
}

.rz-host__traits {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: var(--border-structural);
}

.rz-host__traits span {
  display: flex;
  min-width: 0;
  gap: var(--space-3);
  color: var(--color-pale-bone);
  font-size: var(--text-small);
}

.rz-host__traits b {
  flex: 0 0 auto;
  color: var(--color-aged-copper);
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
}

.rz-host__media {
  position: relative;
  grid-column: 3;
  min-width: 0;
  padding-bottom: var(--space-8);
}

.rz-media {
  display: block;
  min-width: 0;
  overflow: hidden;
  border: var(--border-copper);
  background: var(--color-deep-petrol);
  color: var(--color-pale-bone);
  text-decoration: none;
}

.rz-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-image);
}

.rz-media:hover img {
  transform: scale(1.025);
}

.rz-media figcaption {
  margin: 0;
  padding-top: var(--space-3);
}

.rz-media--portrait {
  width: 100%;
  aspect-ratio: 4 / 5;
}

.rz-media--portrait figcaption,
.rz-media--table figcaption {
  position: absolute;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.rz-host__quote {
  position: absolute;
  right: var(--space-6);
  bottom: 0;
  width: 56%;
  margin: 0;
  padding: var(--space-5);
  border: var(--border-copper);
  background: var(--color-smoked-plum);
  box-shadow: var(--shadow-panel);
}

.rz-host__quote p {
  margin: 0 0 var(--space-3);
}

.rz-sequence__grid {
  display: grid;
  grid-template-columns: minmax(8.125rem, 18fr) minmax(0, 64fr) minmax(3rem, 18fr);
  align-items: start;
}

.rz-sequence__rail {
  grid-column: 1;
  min-width: 0;
}

.rz-sequence__rail h2 {
  max-width: 8ch;
}

.rz-sequence__content {
  display: flex;
  grid-column: 2;
  min-width: 0;
  max-width: 43.75rem;
  flex-direction: column;
}

.rz-stage {
  display: grid;
  grid-template-columns: 8.75rem minmax(0, 1fr);
  min-width: 0;
  gap: var(--space-5);
  padding-block: var(--space-6);
  border-top: var(--border-structural);
}

.rz-stage > div {
  min-width: 0;
  max-width: 58ch;
}

.rz-stage h3,
.rz-stage p:last-child {
  margin-bottom: 0;
}

.rz-stage--accent {
  margin-inline: calc(var(--space-5) * -1);
  padding-inline: var(--space-5);
  background: var(--color-deep-petrol);
}

.rz-sequence__notice {
  max-width: 56ch;
  margin: var(--space-5) 0 0;
  padding: var(--space-4);
  border: var(--border-structural);
}

.rz-kitchen__grid {
  display: grid;
  grid-template-columns: minmax(23.75rem, 44fr) minmax(3rem, 6fr) minmax(28.75rem, 50fr);
  align-items: start;
}

.rz-kitchen__copy {
  grid-column: 1;
  min-width: 0;
  max-width: 31.25rem;
}

.rz-kitchen__copy .lead {
  max-width: 50ch;
}

.rz-kitchen__points {
  display: flex;
  min-width: 0;
  gap: var(--space-4);
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: var(--border-structural);
}

.rz-kitchen__points > div {
  display: flex;
  min-width: 0;
  flex: 1 1 0;
  flex-direction: column;
  gap: var(--space-2);
}

.rz-kitchen__points b {
  color: var(--color-aged-copper);
  font-size: var(--text-micro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rz-kitchen__points span {
  color: var(--color-cool-ash);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.rz-media--table {
  grid-column: 3;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-top: var(--space-7);
}

.rz-occasions__intro {
  max-width: 40rem;
}

.rz-occasions__intro p {
  max-width: 48ch;
}

.rz-occasions__grid {
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 34fr);
  grid-template-areas: "company private" "anniversary group";
  min-width: 0;
  column-gap: 8%;
  row-gap: var(--space-5);
  margin-top: var(--space-7);
}

.rz-occasion {
  min-width: 0;
  padding: var(--space-5) 0;
  border-top: 1px solid var(--color-aged-copper);
  background: transparent;
}

.rz-occasion h3 {
  margin-top: var(--space-3);
}

.rz-occasion p {
  max-width: 44ch;
}

.rz-occasion p:last-of-type {
  margin-bottom: 0;
}

.rz-occasion--company { grid-area: company; }
.rz-occasion--private { grid-area: private; margin-top: var(--space-6); background: rgb(8 9 13 / 18%); padding-inline: var(--space-5); }
.rz-occasion--anniversary { grid-area: anniversary; max-width: 70%; }
.rz-occasion--group { grid-area: group; background: rgb(26 16 27 / 44%); padding-inline: var(--space-5); }

.rz-gallery__heading {
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(3rem, 20fr) minmax(0, 34fr);
  align-items: end;
  min-width: 0;
}

.rz-gallery__heading > div {
  min-width: 0;
}

.rz-gallery__heading > div:first-child { grid-column: 1; max-width: 33.75rem; }
.rz-gallery__heading > div:last-child { grid-column: 3; max-width: 24.375rem; }
.rz-gallery__heading p { max-width: 42ch; }

.rz-gallery__mosaic {
  display: grid;
  grid-template-columns: minmax(0, 32fr) minmax(3rem, 6fr) minmax(0, 62fr);
  min-width: 0;
  margin-top: var(--space-7);
}

.rz-media--gallery-portrait {
  grid-column: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
}

.rz-media--gallery-table {
  grid-column: 3;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-top: var(--space-7);
}

.rz-gallery__mosaic .rz-media span,
.rz-gallery__mosaic .rz-media small {
  display: block;
  padding-inline: var(--space-3);
}

.rz-gallery__mosaic .rz-media span {
  padding-top: var(--space-3);
  color: var(--color-pale-bone);
  font-family: var(--font-serif);
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  line-height: 1;
}

.rz-gallery__mosaic .rz-media small {
  padding-top: var(--space-2);
  padding-bottom: var(--space-3);
  color: var(--color-cool-ash);
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rz-clarity__frame {
  display: flex;
  width: min(100%, 48.75rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  margin-inline: auto;
  padding: var(--space-8);
  border: var(--border-copper);
  background: var(--color-deep-petrol);
}

.rz-clarity__frame h2,
.rz-clarity__frame p,
.rz-clarity__frame .section-index {
  margin: 0;
}

.rz-clarity__frame .lead {
  max-width: 56ch;
}

.rz-clarity__highlight {
  width: 100%;
  max-width: 56ch;
  padding-block: var(--space-5);
  border-top: 1px solid var(--color-aged-copper);
  border-bottom: 1px solid var(--color-aged-copper);
  color: var(--color-pale-bone);
  font-size: var(--text-lead);
  line-height: var(--leading-lead);
}

.rz-directions__grid {
  display: grid;
  grid-template-columns: minmax(0, 27fr) minmax(3rem, 6fr) minmax(0, 67fr);
  align-items: start;
}

.rz-directions__intro {
  grid-column: 1;
  min-width: 0;
  max-width: 20rem;
}

.rz-directions__intro p {
  max-width: 35ch;
}

.rz-directions__columns {
  display: grid;
  grid-column: 3;
  grid-template-columns: repeat(3, minmax(15rem, 1fr));
  min-width: 0;
  gap: 5%;
}

.rz-direction {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  border-top: 1px solid var(--color-aged-copper);
}

.rz-direction h3,
.rz-direction p,
.rz-direction ul,
.rz-direction a {
  margin: 0;
}

.rz-direction p {
  max-width: 34ch;
}

.rz-direction ul {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  padding: 0;
  color: var(--color-cool-ash);
  font-size: var(--text-small);
}

.rz-direction li::before {
  margin-right: var(--space-2);
  color: var(--color-aged-copper);
  content: "—";
}

.rz-direction--plum {
  margin-top: var(--space-5);
  background: var(--color-smoked-plum);
}

.rz-direction--petrol {
  margin-top: var(--space-3);
  background: var(--color-deep-petrol);
}

.rz-closing {
  border-top: 1px solid var(--color-aged-copper);
}

.rz-closing__grid {
  display: grid;
  grid-template-columns: minmax(0, 52fr) minmax(3rem, 13fr) minmax(0, 35fr);
  align-items: center;
  min-height: 32rem;
  padding-block: var(--space-10);
}

.rz-closing__copy {
  display: flex;
  grid-column: 1;
  min-width: 0;
  max-width: 40.625rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.rz-closing__copy h2,
.rz-closing__copy p,
.rz-closing__copy .section-index,
.rz-closing__copy .button {
  margin: 0;
}

.rz-closing__copy .lead {
  max-width: 38ch;
}

.rz-closing__note {
  max-width: 46ch;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-aged-copper);
}

.rz-closing__monogram {
  display: grid;
  grid-column: 3;
  width: min(100%, 18rem);
  aspect-ratio: 1;
  place-self: center end;
  place-items: center;
  border: 1px solid rgb(181 106 69 / 30%);
  color: rgb(181 106 69 / 28%);
  font-family: var(--font-serif);
  font-size: clamp(7rem, 14vw, 12rem);
  line-height: 1;
}

.rz-reveal {
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 360ms ease-out, transform 360ms ease-out;
}

.rz-reveal--visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1050px) {
  .rz-formats__grid,
  .rz-host__grid,
  .rz-sequence__grid,
  .rz-kitchen__grid,
  .rz-directions__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-7);
  }

  .rz-formats__intro,
  .rz-formats__list,
  .rz-host__copy,
  .rz-host__media,
  .rz-sequence__rail,
  .rz-sequence__content,
  .rz-kitchen__copy,
  .rz-media--table,
  .rz-directions__intro,
  .rz-directions__columns {
    grid-column: 1;
  }

  .rz-formats__intro,
  .rz-host__copy,
  .rz-kitchen__copy,
  .rz-directions__intro {
    max-width: 40rem;
  }

  .rz-formats__list,
  .rz-sequence__content {
    max-width: none;
  }

  .rz-host__grid { grid-template-areas: "media" "copy"; }
  .rz-host__media { grid-area: media; max-width: 42rem; }
  .rz-host__copy { grid-area: copy; padding-right: 0; border-right: 0; }
  .rz-host__quote { right: var(--space-5); }

  .rz-sequence__rail h2 { max-width: 14ch; }
  .rz-media--table { margin-top: 0; max-width: 46rem; }
  .rz-directions__columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
  .rz-hero { min-height: 0; }
  .rz-hero__image { position: relative; height: max(30vw, 18.75rem); object-position: center; }
  .rz-hero__shade { display: none; }
  .rz-hero__container { display: block; min-height: 0; padding: 0; }
  .rz-hero__panel { width: 100%; min-width: 0; max-width: none; padding: var(--space-7) var(--container-gutter); border-top: 1px solid var(--color-aged-copper); border-left: 0; background: var(--color-obsidian); }

  .rz-gallery__heading,
  .rz-gallery__mosaic {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .rz-gallery__heading > div:first-child,
  .rz-gallery__heading > div:last-child,
  .rz-media--gallery-portrait,
  .rz-media--gallery-table {
    grid-column: 1;
  }

  .rz-gallery__heading > div:last-child { max-width: 40rem; }
  .rz-gallery__mosaic { margin-top: var(--space-6); }
  .rz-media--gallery-portrait,
  .rz-media--gallery-table { margin-top: 0; max-width: 42rem; }

  .rz-occasions__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "company" "private" "anniversary" "group";
    gap: 0;
  }

  .rz-occasion,
  .rz-occasion--private,
  .rz-occasion--group {
    width: 100%;
    max-width: none;
    margin-top: 0;
    padding: var(--space-5) var(--space-4);
    border-top: var(--border-structural);
  }

  .rz-occasion--anniversary { max-width: none; }
  .rz-directions__columns { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .rz-direction--plum,
  .rz-direction--petrol { margin-top: 0; }

  .rz-closing__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-block: var(--space-9); }
  .rz-closing__copy { grid-column: 1; }
  .rz-closing__monogram { display: none; }
}

@media (max-width: 639px) {
  .rz-hero__image { height: max(48vw, 16.25rem); }
  .rz-hero__panel { padding-block: var(--space-6); }
  .rz-hero__panel h1 { font-size: clamp(2.375rem, 11vw, 3.25rem); }

  .rz-format { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .rz-format__content { max-width: 42ch; }

  .rz-host__media { padding-bottom: 0; }
  .rz-host__quote { position: static; width: 100%; margin-top: var(--space-5); }
  .rz-host__copy { gap: var(--space-4); }

  .rz-stage { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding: var(--space-5) 0; }
  .rz-stage--accent { margin-inline: 0; padding: var(--space-5); }
  .rz-stage > div { max-width: 40ch; }

  .rz-kitchen__points { flex-direction: column; gap: var(--space-4); }
  .rz-kitchen__points > div { padding-bottom: var(--space-4); border-bottom: var(--border-structural); }
  .rz-kitchen__points > div:last-child { padding-bottom: 0; border-bottom: 0; }

  .rz-clarity__frame { padding: var(--space-5); gap: var(--space-4); }
  .rz-clarity__highlight { font-size: 1.25rem; }

  .rz-page h2 { font-size: clamp(2.125rem, 10vw, 2.5rem); }
  .rz-closing__copy { gap: var(--space-4); }
}

@media (max-width: 479px) {
  .rz-hero__image { height: 16.25rem; }
  .rz-hero__panel .button { width: auto; }
  .rz-host__copy .button { width: 100%; }
  .rz-closing__copy .button { width: 100%; }
  .rz-occasion,
  .rz-occasion--private,
  .rz-occasion--group,
  .rz-direction { padding: var(--space-5) var(--space-4); }
}

@media (prefers-reduced-motion: reduce) {
  .rz-reveal { opacity: 1; transform: none; transition: none; }
  .rz-media:hover img { transform: none; }
}
