.card-room-page {
  overflow: clip;
}

.card-room-page a:focus-visible,
.card-room-page button:focus-visible {
  outline: 3px solid var(--color-lagoon-blue);
  outline-offset: 2px;
}

.cr-hero__grid,
.cr-moments__grid,
.cr-groups__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-5);
  align-items: start;
}

.cr-hero__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  padding-top: var(--space-6);
}

.cr-hero__copy h1 {
  max-width: 11ch;
}

.cr-hero__copy > .lead {
  max-width: 43rem;
}

.cr-hero__copy > p:not(.eyebrow):not(.lead):not(.cr-hero__microcopy) {
  max-width: 40rem;
}

.cr-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

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

.cr-hero__microcopy {
  margin-bottom: 0;
  color: var(--color-slate-muted);
  font-size: var(--font-size-label);
}

.cr-hero__media {
  grid-column: 6 / span 7;
  min-width: 0;
  margin: var(--space-6) calc(var(--gutter) * -0.45) 0 0;
}

.cr-hero__media img {
  width: 100%;
  height: 35rem;
  object-fit: cover;
  object-position: 72% center;
  border-radius: var(--radius-feature) 0 0 var(--radius-feature);
}

.cr-hero__media figcaption {
  max-width: 17.5rem;
  margin-top: var(--space-3);
  color: var(--color-slate-muted);
  font-size: var(--font-size-utility);
  line-height: var(--line-height-utility);
}

.cr-details__intro {
  max-width: 43rem;
}

.cr-details__intro > .lead {
  max-width: 40rem;
}

.cr-details__grid,
.cr-steps__grid,
.cr-routes__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.cr-details__grid > *,
.cr-steps__grid > *,
.cr-routes__grid > * {
  min-width: 0;
}

.cr-detail {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: var(--border-subtle);
  transition: border-color var(--transition-fast);
}

.cr-detail__number,
.cr-route__number,
.cr-step__number {
  display: block;
  margin-bottom: var(--space-4);
  color: var(--color-olive-leaf);
  font-size: var(--font-size-utility);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-label);
}

.cr-detail h3 {
  max-width: 15ch;
}

.cr-detail p {
  max-width: 19rem;
  margin-bottom: 0;
}

.cr-detail:nth-child(2) {
  border-top-color: var(--color-champagne-silver);
}

.cr-detail:nth-child(2)::before {
  display: block;
  width: 3rem;
  height: 2px;
  margin-bottom: var(--space-4);
  background: var(--color-olive-leaf);
  content: "";
}

.cr-detail__felt {
  display: inline-block;
  margin-top: var(--space-5);
  padding: var(--space-2) var(--space-3);
  background: var(--color-lagoon-blue);
  color: var(--color-limestone-100);
  font-size: var(--font-size-utility);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.cr-table-view__figure {
  position: relative;
  width: min(100%, 68rem);
  margin-inline: auto;
  overflow: hidden;
  border-radius: var(--radius-feature);
}

.cr-table-view__figure > img {
  width: 100%;
  height: 41rem;
  object-fit: cover;
  object-position: center;
}

.cr-table-view__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: min(100%, 24rem);
  min-width: 0;
  padding: var(--space-5);
  background: var(--color-lagoon-deep);
  color: var(--color-limestone-100);
}

.cr-table-view__caption h2 {
  color: inherit;
  font-size: clamp(1.875rem, 3vw, 2.35rem);
}

.cr-table-view__caption p:not(.eyebrow) {
  margin-bottom: var(--space-4);
}

.cr-table-view__caption a,
.cr-transition__note a,
.cr-step a {
  color: inherit;
  font-size: var(--font-size-label);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-button);
  text-decoration-color: var(--color-paprika-red);
  text-transform: uppercase;
}

.cr-transition__intro {
  max-width: 44rem;
}

.cr-transition__intro > .lead {
  max-width: 41rem;
}

.cr-transition__markers {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.cr-transition__markers > span {
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border: var(--border-subtle);
  border-radius: var(--radius-architectural);
  background: var(--color-limestone-100);
  font-size: var(--font-size-utility);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cr-transition__lower {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
  align-items: start;
}

.cr-transition__lower > * {
  min-width: 0;
}

.cr-transition__media {
  grid-column: 1 / span 5;
  overflow: hidden;
  border-radius: var(--radius-feature);
}

.cr-transition__media img {
  width: 100%;
  height: 27rem;
  object-fit: cover;
  object-position: left center;
}

.cr-transition__note {
  grid-column: 7 / span 3;
  min-width: 0;
}

.cr-transition__note p {
  max-width: 20rem;
}

.cr-transition__note a {
  color: var(--color-charcoal);
}

.cr-pathway {
  grid-column: 10 / span 3;
  min-width: 0;
  padding-left: var(--space-4);
  border-left: var(--border-subtle);
}

.cr-pathway ol {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cr-pathway li,
.cr-pathway a,
.cr-pathway li > span {
  min-width: 0;
}

.cr-pathway a,
.cr-pathway li > span {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-2) 0;
  text-decoration: none;
}

.cr-pathway strong {
  font-size: var(--font-size-utility);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cr-pathway span span {
  color: var(--color-slate-muted);
  font-size: var(--font-size-utility);
  line-height: var(--line-height-utility);
}

.cr-pathway a:hover strong,
.cr-pathway a:focus-visible strong {
  text-decoration: underline;
  text-decoration-color: var(--color-paprika-red);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.cr-steps__intro {
  max-width: 43rem;
}

.cr-steps__intro > .lead {
  max-width: 39rem;
}

.cr-step {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: 1px solid rgb(255 253 248 / 45%);
}

.cr-step__number {
  color: var(--color-champagne-silver);
}

.cr-step h3 {
  color: inherit;
  max-width: 15ch;
}

.cr-step p {
  max-width: 21rem;
}

.cr-step__quote {
  color: var(--color-limestone-100);
  font-family: var(--font-heading);
  font-size: var(--font-size-card-heading);
  font-style: italic;
  line-height: var(--line-height-card-heading);
}

.cr-steps__closing {
  max-width: 45rem;
  margin: var(--space-7) 0 0;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-champagne-silver);
  font-family: var(--font-heading);
  font-size: var(--font-size-lead);
}

.cr-moments__grid {
  align-items: center;
}

.cr-moments__media {
  grid-column: 1 / span 5;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-feature);
}

.cr-moments__media img {
  width: 100%;
  height: 39rem;
  object-fit: cover;
  object-position: center;
}

.cr-moments__copy {
  grid-column: 7 / span 5;
  min-width: 0;
}

.cr-moments__copy > p:not(.eyebrow),
.cr-moments__reflection p {
  max-width: 26rem;
}

.cr-moments__copy > h3 {
  max-width: 19rem;
}

.cr-moments__reflection {
  max-width: 27rem;
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: var(--border-subtle);
}

.cr-moments__reflection h3 {
  max-width: 18rem;
}

.cr-routes__intro {
  max-width: 43rem;
}

.cr-routes__intro > .lead {
  max-width: 39rem;
}

.cr-routes__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cr-route {
  display: flex;
  min-width: 0;
  min-height: 18rem;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-5);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-limestone-100);
  color: var(--color-charcoal);
  text-decoration: none;
  transition: box-shadow var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);
}

.cr-route h3 {
  max-width: 12ch;
}

.cr-route p {
  max-width: 17rem;
}

.cr-route__link {
  margin-top: auto;
  padding-top: var(--space-3);
  color: var(--color-paprika-red);
  font-size: var(--font-size-utility);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cr-route--blue {
  border-left: 4px solid var(--color-lagoon-blue);
}

.cr-route--static {
  background: rgb(255 253 248 / 58%);
}

.cr-route--static .cr-route__link {
  color: var(--color-olive-leaf);
}

.cr-groups__copy {
  grid-column: 1 / span 7;
  min-width: 0;
}

.cr-groups__copy > .lead {
  max-width: 35rem;
}

.cr-groups__prompt {
  display: flex;
  max-width: 26rem;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 2px solid var(--color-spotted-gum);
}

.cr-groups__prompt > * {
  min-width: 0;
  margin: 0;
}

.cr-groups__material {
  grid-column: 9 / span 4;
  display: grid;
  min-width: 0;
  min-height: 20rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  align-self: stretch;
  padding: var(--space-5) 0;
}

.cr-groups__material > span {
  min-width: 0;
  border: 1px solid var(--color-champagne-silver);
  border-radius: 50% 50% 42% 42%;
  background: linear-gradient(135deg, rgb(23 106 120 / 9%), rgb(168 120 82 / 16%));
}

.cr-groups__material > span:nth-child(2) {
  transform: translateY(var(--space-6));
}

.cr-contact__notice {
  display: flex;
  width: min(100%, 46rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  margin-inline: auto;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-limestone-100);
  box-shadow: var(--shadow-floating);
}

.cr-contact__notice > * {
  min-width: 0;
  margin: 0;
}

.cr-contact__notice h2,
.cr-contact__notice > p {
  max-width: 32rem;
}

.cr-contact__notice a:not(.button) {
  overflow-wrap: anywhere;
}

.cr-contact__prompt {
  color: var(--color-slate-muted);
}

.cr-close {
  padding-block: clamp(5.5rem, 10vw, 7.5rem);
}

.cr-close__inner {
  display: flex;
  width: min(100% - (var(--gutter) * 2), 66rem);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  margin-inline: auto;
  text-align: center;
}

.cr-close__inner > * {
  min-width: 0;
  margin: 0;
}

.cr-close__marker {
  color: var(--color-lagoon-blue);
  font-size: 1.5rem;
}

.cr-close h2 {
  max-width: 65rem;
  font-size: clamp(3.2rem, 7vw, 4.5rem);
  line-height: 1;
}

.cr-close .lead {
  max-width: 27rem;
}

.cr-reveal {
  opacity: 1;
}

html.cr-js .cr-reveal {
  opacity: 0;
}

html.cr-js .cr-reveal.cr-reveal--visible {
  opacity: 1;
  transition: opacity 300ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .cr-detail:hover {
    border-top-color: var(--color-champagne-silver);
  }

  .cr-route:not(.cr-route--static):hover {
    border-color: var(--color-champagne-silver);
    box-shadow: var(--shadow-floating);
    transform: translateY(-2px) scale(1.02);
  }

  .cr-moments__media img {
    transition: opacity var(--transition-base);
  }

  .cr-moments__media:hover img {
    opacity: 0.94;
  }
}

@media (max-width: 1020px) {
  .cr-transition__lower {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .cr-transition__media {
    grid-column: 1 / -1;
  }

  .cr-transition__media img {
    height: 28rem;
  }

  .cr-transition__note {
    grid-column: 1 / span 3;
  }

  .cr-pathway {
    grid-column: 4 / span 3;
  }

  .cr-routes__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .cr-hero__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    row-gap: var(--space-6);
  }

  .cr-hero__copy {
    grid-column: 1 / span 6;
    padding-top: 0;
  }

  .cr-hero__copy h1 {
    max-width: 14ch;
  }

  .cr-hero__media {
    grid-column: 1 / span 6;
    margin: 0;
  }

  .cr-hero__media img {
    height: 32rem;
    border-radius: var(--radius-feature);
  }
}

@media (max-width: 920px) {
  .cr-details__grid,
  .cr-steps__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cr-details__grid > :last-child,
  .cr-steps__grid > :last-child {
    grid-column: 1 / span 2;
  }

  .cr-moments__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    row-gap: var(--space-6);
  }

  .cr-moments__media,
  .cr-moments__copy {
    grid-column: 1 / span 6;
  }

  .cr-moments__media img {
    height: 32rem;
  }
}

@media (max-width: 860px) {
  .cr-table-view__figure > img {
    height: 33rem;
  }

  .cr-table-view__caption {
    position: static;
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 760px) {
  .cr-groups__grid {
    grid-template-columns: 1fr;
  }

  .cr-groups__copy {
    grid-column: 1;
  }

  .cr-groups__material {
    display: none;
  }
}

@media (max-width: 680px) {
  .cr-details__grid,
  .cr-steps__grid,
  .cr-transition__lower {
    grid-template-columns: 1fr;
  }

  .cr-details__grid > :last-child,
  .cr-steps__grid > :last-child,
  .cr-transition__media,
  .cr-transition__note,
  .cr-pathway {
    grid-column: 1;
  }

  .cr-details__grid,
  .cr-steps__grid {
    gap: var(--space-5);
  }

  .cr-transition__lower {
    gap: var(--space-5);
  }

  .cr-transition__note p,
  .cr-pathway {
    max-width: none;
  }

  .cr-pathway {
    padding-left: 0;
    border-top: var(--border-subtle);
    border-left: 0;
    padding-top: var(--space-5);
  }
}

@media (max-width: 640px) {
  .cr-routes__grid {
    grid-template-columns: 1fr;
  }

  .cr-route {
    min-height: 0;
  }
}

@media (max-width: 599px) {
  .cr-hero {
    padding-top: var(--section-space-compact);
  }

  .cr-hero__copy > .lead,
  .cr-hero__copy > p:not(.eyebrow):not(.lead):not(.cr-hero__microcopy),
  .cr-details__intro,
  .cr-details__intro > .lead,
  .cr-transition__intro,
  .cr-transition__intro > .lead,
  .cr-steps__intro,
  .cr-steps__intro > .lead,
  .cr-routes__intro,
  .cr-routes__intro > .lead,
  .cr-groups__copy > .lead {
    max-width: none;
  }

  .cr-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

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

  .cr-hero__media {
    margin-right: calc(var(--gutter) * -1);
  }

  .cr-hero__media img {
    height: 31rem;
    border-radius: var(--radius-feature) 0 0 var(--radius-feature);
    object-position: 68% center;
  }

  .cr-hero__media figcaption {
    padding-right: var(--gutter);
  }

  .cr-table-view__figure > img {
    height: 31rem;
    object-position: center;
  }

  .cr-table-view__caption {
    padding: var(--space-4);
  }

  .cr-transition__media {
    margin-right: calc(var(--gutter) * -1);
  }

  .cr-transition__media img {
    height: 23rem;
    object-position: left center;
    border-radius: var(--radius-feature) 0 0 var(--radius-feature);
  }

  .cr-moments__media img {
    height: 31rem;
  }

  .cr-detail p,
  .cr-step p,
  .cr-moments__copy > p:not(.eyebrow),
  .cr-moments__reflection p,
  .cr-contact__notice h2,
  .cr-contact__notice > p {
    max-width: none;
  }

  .cr-contact__notice {
    padding: var(--space-4);
  }

  .cr-close {
    padding-block: var(--space-8);
  }

  .cr-close h2 {
    font-size: 2.625rem;
    line-height: 1.05;
  }
}

@media (max-width: 420px) {
  .cr-groups__prompt .button,
  .cr-close .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.cr-js .cr-reveal {
    opacity: 1;
  }
}
