.card-room-page {
  background: var(--color-off-white);
  color: var(--color-ink);
}

.card-room-page .cr-shell {
  width: min(100% - (var(--gutter) * 2), var(--container-max));
  margin-inline: auto;
}

.card-room-page .cr-image-frame {
  width: 100%;
}

.card-room-page .cr-image-frame img {
  transition: transform var(--transition-fast);
}

.card-room-page .cr-image-frame:hover img {
  transform: scale(1.025);
}

.card-room-page .cr-text-link {
  color: inherit;
  font-weight: 600;
  text-decoration-color: var(--color-rust);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  transition: color var(--transition-fast), text-decoration-thickness var(--transition-fast);
}

.card-room-page .cr-text-link:hover {
  color: var(--color-rust-dark);
  text-decoration-thickness: 3px;
}

.card-room-page .cr-block-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
}

.card-room-page .meta {
  display: block;
  margin-top: var(--space-3);
}

.card-room-page .cr-hero {
  position: relative;
  isolation: isolate;
  min-height: 38.75rem;
  overflow: hidden;
  background: var(--color-charcoal-950);
  color: var(--color-off-white);
}

.card-room-page .cr-hero__image,
.card-room-page .cr-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.card-room-page .cr-hero__image {
  object-fit: cover;
  object-position: center;
}

.card-room-page .cr-hero__overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(78, 35, 25, 0.58) 0%, rgba(78, 35, 25, 0.48) 42%, rgba(23, 24, 23, 0.12) 72%, rgba(23, 24, 23, 0.08) 100%);
}

.card-room-page .cr-hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 38.75rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 1.25rem;
  align-items: center;
}

.card-room-page .cr-hero__content {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 35rem;
}

.card-room-page .cr-hero__content .eyebrow {
  margin-bottom: var(--space-3);
}

.card-room-page .cr-hero__content h1 {
  margin-bottom: var(--space-5);
}

.card-room-page .cr-hero__content p {
  max-width: 31rem;
  margin-bottom: var(--space-6);
}

.card-room-page .cr-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.card-room-page .cr-hero__actions > * {
  min-width: 0;
}

.card-room-page .cr-spatial__top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) 1.25rem;
  align-items: start;
}

.card-room-page .cr-spatial__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 32.5rem;
}

.card-room-page .cr-spatial__intro .eyebrow {
  margin-bottom: var(--space-3);
}

.card-room-page .cr-spatial__intro .rule {
  width: 4.5rem;
  margin-bottom: var(--space-5);
}

.card-room-page .cr-spatial__figure {
  grid-column: 6 / span 7;
  min-width: 0;
  width: 100%;
  margin: 0 0 calc(var(--space-7) * -1);
}

.card-room-page .cr-spatial__figure .image-frame {
  aspect-ratio: 3 / 2;
}

.card-room-page .cr-zones {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0 1.25rem;
  padding-top: var(--space-7);
}

.card-room-page .cr-zone {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 26.25rem;
  padding-block: var(--space-5);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-zone:last-child {
  border-bottom: 1px solid var(--color-border);
}

.card-room-page .cr-zone__number,
.card-room-page .cr-table-detail__label,
.card-room-page .cr-social__label,
.card-room-page .cr-etiquette-item > span {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--color-olive);
  font-size: var(--text-label);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: var(--line-label);
  text-transform: uppercase;
}

.card-room-page .cr-zone h3,
.card-room-page .cr-table-detail h3,
.card-room-page .cr-route h3,
.card-room-page .cr-next-route h3,
.card-room-page .cr-etiquette-item h3,
.card-room-page .cr-material__invitation h3 {
  margin-bottom: var(--space-3);
}

.card-room-page .cr-tables__top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) 1.25rem;
  align-items: start;
}

.card-room-page .cr-tables__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 32.5rem;
}

.card-room-page .cr-tables__intro .eyebrow,
.card-room-page .cr-social__intro .eyebrow,
.card-room-page .cr-material__copy .eyebrow,
.card-room-page .cr-next__intro .eyebrow,
.card-room-page .cr-arrival__content .eyebrow {
  margin-bottom: var(--space-3);
}

.card-room-page .cr-tables__figure {
  grid-column: 7 / span 6;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.card-room-page .cr-tables__figure .image-frame {
  aspect-ratio: 3 / 2;
}

.card-room-page .cr-table-details {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.25rem;
  align-items: start;
  margin-top: var(--space-7);
}

.card-room-page .cr-table-detail {
  grid-column: span 3;
  min-width: 0;
  width: 100%;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-steel-line);
  transition: border-color var(--transition-fast);
}

.card-room-page .cr-table-detail:hover,
.card-room-page .cr-table-detail:focus-within {
  border-color: var(--color-soft-copper);
}

.card-room-page .cr-table-detail--offset {
  margin-top: var(--space-7);
}

.card-room-page .cr-table-detail--low {
  margin-top: var(--space-9);
}

.card-room-page .cr-social__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7) 1.25rem;
  align-items: start;
}

.card-room-page .cr-social__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 35rem;
}

.card-room-page .cr-social__quote {
  margin-top: var(--space-6);
  margin-bottom: var(--space-6);
  color: var(--color-rust);
  font-family: var(--font-heading);
  font-size: var(--text-section);
  font-weight: 600;
  line-height: var(--line-heading);
}

.card-room-page .cr-social__rhythm {
  display: grid;
  grid-template-columns: minmax(0, 7rem) minmax(0, 1fr);
  gap: var(--space-4);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-social__rhythm > * {
  min-width: 0;
}

.card-room-page .cr-social__rhythm p {
  max-width: 27rem;
}

.card-room-page .cr-social__lounge {
  grid-column: 7 / span 5;
  min-width: 0;
  width: 100%;
}

.card-room-page .cr-social__lounge figure {
  width: 100%;
  margin: 0;
}

.card-room-page .cr-social__lounge .image-frame {
  aspect-ratio: 4 / 5;
}

.card-room-page .cr-route {
  min-width: 0;
  width: 100%;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-route--lounge {
  margin-top: var(--space-6);
  max-width: 28.75rem;
}

.card-room-page .cr-route--restaurant {
  grid-column: 1 / span 5;
  max-width: 28.75rem;
  border-top: 3px solid var(--color-rust);
}

.card-room-page .cr-etiquette-wrap {
  padding-block: var(--space-9);
}

.card-room-page .cr-etiquette {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) 1.25rem;
  padding: var(--space-7);
  border: 1px solid var(--color-steel-line);
  background: var(--color-charcoal-800);
}

.card-room-page .cr-etiquette__intro {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 31.25rem;
}

.card-room-page .cr-etiquette__intro .eyebrow {
  margin-bottom: var(--space-3);
}

.card-room-page .cr-etiquette__grid {
  grid-column: 7 / span 6;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5) 1.25rem;
  min-width: 0;
  width: 100%;
}

.card-room-page .cr-etiquette-item {
  min-width: 0;
  width: 100%;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-steel-line);
  transition: border-color var(--transition-fast);
}

.card-room-page .cr-etiquette-item:hover,
.card-room-page .cr-etiquette-item:focus-within {
  border-color: var(--color-soft-copper);
}

.card-room-page .cr-etiquette-item > span {
  color: var(--color-soft-copper);
}

.card-room-page .cr-material__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) 1.25rem;
  align-items: start;
}

.card-room-page .cr-material__image-column {
  grid-column: 1 / span 6;
  min-width: 0;
  width: 100%;
  margin-top: calc(var(--space-7) * -1);
}

.card-room-page .cr-material__image-column figure {
  margin: 0;
}

.card-room-page .cr-material__image-column .image-frame {
  aspect-ratio: 4 / 3;
}

.card-room-page .cr-material__rail {
  max-width: 18.75rem;
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-material__rail .utility-label {
  margin-bottom: var(--space-3);
  color: var(--color-olive);
}

.card-room-page .cr-material__copy {
  grid-column: 8 / span 5;
  min-width: 0;
  max-width: 33.75rem;
}

.card-room-page .cr-material__invitation {
  max-width: 28.75rem;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-next__intro {
  max-width: 38.75rem;
  margin-inline: auto;
  text-align: center;
}

.card-room-page .cr-next__intro p {
  max-width: 36rem;
  margin-inline: auto;
}

.card-room-page .cr-next__routes {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: var(--space-7);
}

.card-room-page .cr-next-route {
  display: flex;
  grid-column: span 5;
  min-width: 0;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  border: 1px solid var(--color-steel-line);
}

.card-room-page .cr-next-route:first-child {
  grid-column-start: 1;
}

.card-room-page .cr-next-route:last-child {
  grid-column-start: 8;
}

.card-room-page .cr-next-route h3,
.card-room-page .cr-next-route p {
  margin: 0;
}

.card-room-page .cr-next-route p {
  max-width: 26.25rem;
}

.card-room-page .cr-next-route .button {
  margin-top: auto;
}

.card-room-page .cr-arrival__content {
  max-width: 38.75rem;
}

.card-room-page .cr-arrival__content h2 {
  font-size: var(--text-subsection);
}

.card-room-page .cr-arrival__content > p {
  max-width: 38.75rem;
}

.card-room-page .cr-arrival__facts {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  padding: 0;
  margin-bottom: var(--space-5);
  list-style: none;
  font-size: var(--text-small);
  font-weight: 600;
}

.card-room-page .cr-arrival__facts > li {
  min-width: 0;
}

.card-room-page .cr-arrival__facts a {
  color: inherit;
}

.card-room-page .cr-arrival__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.card-room-page .cr-arrival__actions > * {
  min-width: 0;
}

@media (max-width: 74.9375rem) {
  .card-room-page .cr-hero__grid,
  .card-room-page .cr-spatial__top,
  .card-room-page .cr-zones,
  .card-room-page .cr-tables__top,
  .card-room-page .cr-table-details,
  .card-room-page .cr-social__grid,
  .card-room-page .cr-etiquette,
  .card-room-page .cr-material__grid,
  .card-room-page .cr-next__routes {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    column-gap: var(--space-4);
  }

  .card-room-page .cr-hero__content { grid-column: 1 / span 4; }
  .card-room-page .cr-spatial__intro { grid-column: 1 / span 4; }
  .card-room-page .cr-spatial__figure { grid-column: 5 / span 4; margin-bottom: 0; }
  .card-room-page .cr-zone { grid-column: 1 / span 4; }
  .card-room-page .cr-tables__intro { grid-column: 1 / span 3; }
  .card-room-page .cr-tables__figure { grid-column: 4 / span 5; }
  .card-room-page .cr-table-detail { grid-column: 6 / span 3; margin-top: 0; }
  .card-room-page .cr-table-detail:first-child { grid-row: 1; }
  .card-room-page .cr-table-detail:nth-child(2) { grid-row: 2; }
  .card-room-page .cr-table-detail:nth-child(3) { grid-row: 3; }
  .card-room-page .cr-social__intro { grid-column: 1 / span 4; }
  .card-room-page .cr-social__lounge { grid-column: 5 / span 4; }
  .card-room-page .cr-route--restaurant { grid-column: 1 / span 4; }
  .card-room-page .cr-etiquette__intro { grid-column: 1 / span 8; }
  .card-room-page .cr-etiquette__grid { grid-column: 1 / span 8; }
  .card-room-page .cr-material__image-column { grid-column: 1 / span 5; margin-top: 0; }
  .card-room-page .cr-material__copy { grid-column: 6 / span 3; }
  .card-room-page .cr-next-route { grid-column: span 4; }
  .card-room-page .cr-next-route:last-child { grid-column-start: 5; }
}

@media (max-width: 63.9375rem) {
  .card-room-page .cr-spatial__top {
    display: grid;
  }

  .card-room-page .cr-spatial__intro { grid-column: 1 / span 8; max-width: 32.5rem; }
  .card-room-page .cr-spatial__figure { grid-column: 1 / span 8; }
  .card-room-page .cr-zones { padding-top: var(--space-6); }
  .card-room-page .cr-zone { grid-column: 1 / span 8; max-width: 32.5rem; }
  .card-room-page .cr-tables__intro { grid-column: 1 / span 3; }
  .card-room-page .cr-social__grid { row-gap: var(--space-6); }
  .card-room-page .cr-material__image-column { grid-column: 1 / span 8; }
  .card-room-page .cr-material__copy { grid-column: 1 / span 8; max-width: 33.75rem; }
}

@media (max-width: 47.9375rem) {
  .card-room-page .cr-hero {
    min-height: 22.5rem;
  }

  .card-room-page .cr-hero__grid {
    min-height: 22.5rem;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    padding-block: var(--space-6);
  }

  .card-room-page .cr-hero__overlay {
    background: rgba(78, 35, 25, 0.58);
  }

  .card-room-page .cr-hero__content {
    grid-column: 1;
    max-width: none;
  }

  .card-room-page .cr-hero__content h1 {
    font-size: 2.625rem;
  }

  .card-room-page .cr-hero__content p {
    max-width: 24rem;
    font-size: 1.0625rem;
  }

  .card-room-page .cr-hero__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .card-room-page .cr-hero__actions .button {
    width: 100%;
  }

  .card-room-page .cr-spatial__top,
  .card-room-page .cr-zones,
  .card-room-page .cr-tables__top,
  .card-room-page .cr-table-details,
  .card-room-page .cr-social__grid,
  .card-room-page .cr-etiquette,
  .card-room-page .cr-material__grid,
  .card-room-page .cr-next__routes {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .card-room-page .cr-spatial__intro,
  .card-room-page .cr-spatial__figure,
  .card-room-page .cr-zone,
  .card-room-page .cr-tables__intro,
  .card-room-page .cr-tables__figure,
  .card-room-page .cr-table-detail,
  .card-room-page .cr-social__intro,
  .card-room-page .cr-social__lounge,
  .card-room-page .cr-route--restaurant,
  .card-room-page .cr-etiquette__intro,
  .card-room-page .cr-etiquette__grid,
  .card-room-page .cr-material__image-column,
  .card-room-page .cr-material__copy,
  .card-room-page .cr-next-route,
  .card-room-page .cr-next-route:first-child,
  .card-room-page .cr-next-route:last-child {
    grid-column: 1;
    grid-row: auto;
    max-width: none;
    margin-top: 0;
  }

  .card-room-page .cr-spatial__figure .image-frame,
  .card-room-page .cr-tables__figure .image-frame,
  .card-room-page .cr-material__image-column .image-frame {
    aspect-ratio: 4 / 3;
  }

  .card-room-page .cr-tables__intro,
  .card-room-page .cr-tables__figure,
  .card-room-page .cr-table-detail {
    width: 100%;
  }

  .card-room-page .cr-table-details {
    margin-top: var(--space-6);
  }

  .card-room-page .cr-table-detail {
    padding-top: var(--space-5);
  }

  .card-room-page .cr-social__rhythm {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
  }

  .card-room-page .cr-social__lounge .image-frame {
    aspect-ratio: 4 / 5;
  }

  .card-room-page .cr-route--lounge {
    max-width: none;
  }

  .card-room-page .cr-etiquette-wrap {
    padding-block: var(--space-7);
  }

  .card-room-page .cr-etiquette {
    padding: var(--space-5);
  }

  .card-room-page .cr-etiquette__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .card-room-page .cr-material__rail {
    max-width: none;
  }

  .card-room-page .cr-next__intro {
    max-width: none;
  }

  .card-room-page .cr-next-route {
    padding: var(--space-5);
  }

  .card-room-page .cr-next-route .button {
    width: 100%;
  }

  .card-room-page .cr-arrival__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .card-room-page .cr-image-frame img {
    transition: none;
  }

  .card-room-page .cr-image-frame:hover img {
    transform: none;
  }
}