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

.card-room-page > section {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 320ms ease-out, transform 320ms ease-out;
}

.card-room-page > section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.card-room-hero__grid,
.card-room-tables__grid,
.card-room-threshold__top,
.card-room-threshold__routes,
.card-room-dining__top,
.card-room-dining__items,
.card-room-rhythm__grid,
.card-room-private__grid,
.card-room-explore__items,
.card-room-contact__band,
.card-room-principles__list {
  display: grid;
  min-width: 0;
}

.card-room-hero__grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: center;
  gap: var(--space-6);
}

.card-room-hero__media {
  width: calc(100% + 4.5rem);
  min-width: 0;
  height: min(46vw, 39rem);
  margin-left: max(-4.5rem, calc((100vw - var(--container-wide-max)) / -2));
}

.card-room-hero__media img {
  transition: transform var(--transition-base);
}

.card-room-hero__media:hover img {
  transform: scale(1.015);
}

.card-room-hero__copy {
  display: flex;
  min-width: 0;
  max-width: 31.25rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-left: var(--space-6);
  border-left: 1px solid var(--color-brushed-copper);
}

.card-room-hero__copy > :is(h1, p) {
  margin: 0;
}

.card-room-hero__copy .lead {
  max-width: 34ch;
}

.card-room-hero__offline {
  display: flex;
  min-width: 0;
  max-width: 40ch;
  flex-direction: column;
  gap: var(--space-2);
}

.card-room-hero__offline p {
  margin: 0;
  color: var(--color-muted-ink);
  font-size: 0.9375rem;
}

.card-room-hero__action {
  min-width: 15rem;
}

.card-room-principles {
  position: relative;
}

.card-room-principles::after {
  position: absolute;
  right: 8%;
  bottom: 10%;
  width: 11rem;
  height: 11rem;
  border: 1px solid rgba(71, 112, 95, 0.12);
  border-radius: 50% 40% 55% 45%;
  content: "";
  pointer-events: none;
}

.card-room-principles__intro {
  width: min(100%, 58ch);
  min-width: 0;
}

.card-room-principles__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-7);
}

.card-room-principle {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  border-bottom: 1px solid var(--color-brushed-copper);
  padding-bottom: var(--space-5);
}

.card-room-principle > :is(h3, p) {
  margin: 0;
}

.card-room-principle p:not(.card-room-principle__number) {
  max-width: 34ch;
}

.card-room-principle__number,
.card-room-rhythm__number {
  color: var(--color-brushed-copper);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: var(--tracking-meta);
}

.card-room-tables__grid {
  grid-template-columns: minmax(0, 6fr) minmax(0, 1fr) minmax(0, 5fr);
  align-items: start;
  gap: var(--space-6);
}

.card-room-tables__copy {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: 56ch;
}

.card-room-tables__media {
  grid-column: 3;
  grid-row: 1 / span 2;
  width: 100%;
  min-width: 0;
  margin-top: var(--space-5);
  aspect-ratio: 4 / 5;
}

.card-room-tables__details {
  display: grid;
  grid-column: 1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  width: 100%;
  min-width: 0;
  margin-top: var(--space-6);
}

.card-room-tables__details article {
  min-width: 0;
  border-top: 1px solid var(--color-brushed-copper);
  padding-top: var(--space-3);
}

.card-room-tables__details h3,
.card-room-tables__details p {
  margin-bottom: var(--space-3);
}

.card-room-tables__details p {
  font-size: 0.9375rem;
}

.card-room-threshold__top {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: var(--space-7);
}

.card-room-threshold__copy {
  width: 100%;
  min-width: 0;
  max-width: 50ch;
}

.card-room-threshold__media {
  width: 100%;
  min-width: 0;
  aspect-ratio: 3 / 2;
  transform: translateY(calc(var(--space-4) * -1));
}

.card-room-threshold__routes {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: var(--space-7);
}

.card-room-threshold__routes article {
  min-width: 0;
  padding: 0 var(--space-6);
}

.card-room-threshold__routes article:first-child {
  padding-left: 0;
  border-right: 1px solid var(--color-brushed-copper);
}

.card-room-threshold__routes article p {
  max-width: 32ch;
}

.card-room-dining__top {
  grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
  align-items: center;
}

.card-room-dining__copy {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: 52ch;
}

.card-room-dining__eyebrow {
  background: var(--color-celadon-green);
  padding: var(--space-2) var(--space-3);
}

.card-room-dining__media {
  grid-column: 3;
  width: 100%;
  min-width: 0;
  aspect-ratio: 4 / 5;
}

.card-room-dining__items {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-7);
}

.card-room-dining__items article {
  min-width: 0;
  border-top: 1px solid var(--color-brushed-copper);
  padding-top: var(--space-4);
}

.card-room-dining__items article p {
  max-width: 31ch;
}

.card-room-rhythm__grid {
  grid-template-columns: minmax(0, 6fr) minmax(0, 2fr) minmax(0, 4fr);
  gap: var(--space-5);
}

.card-room-rhythm .eyebrow,
.card-room-rhythm .lead,
.card-room-rhythm p {
  color: var(--color-limestone-white);
}

.card-room-rhythm .eyebrow::after {
  background: var(--color-brushed-copper);
}

.card-room-rhythm__copy {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: 54ch;
}

.card-room-rhythm__steps {
  display: flex;
  grid-column: 3;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.card-room-rhythm__steps article {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  min-width: 0;
  gap: var(--space-3);
  border-left: 1px solid var(--color-brushed-copper);
  padding-left: var(--space-4);
}

.card-room-rhythm__steps article > * {
  min-width: 0;
}

.card-room-rhythm__steps h3 {
  margin-bottom: var(--space-2);
}

.card-room-rhythm__steps p {
  margin-bottom: 0;
  font-size: 0.9375rem;
}

.card-room-rhythm__number {
  margin: 0;
}

.card-room-private__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-8);
}

.card-room-private__copy {
  display: flex;
  min-width: 0;
  max-width: 52ch;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.card-room-private__copy > :is(h2, p) {
  margin: 0;
}

.card-room-private__uses {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.card-room-private__uses article {
  min-width: 0;
  border-top: 1px solid var(--color-brushed-copper);
  padding: var(--space-4) 0;
}

.card-room-private__uses article:last-child {
  border-bottom: 1px solid var(--color-brushed-copper);
}

.card-room-private__uses h3 {
  margin-bottom: var(--space-2);
}

.card-room-private__uses p {
  max-width: 35ch;
}

.card-room-explore__intro {
  width: min(100%, 48ch);
  min-width: 0;
}

.card-room-explore__items {
  grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 3fr);
  align-items: end;
  gap: var(--space-6);
  margin-top: var(--space-7);
}

.card-room-explore__items article {
  min-width: 0;
  border-top: 1px solid var(--color-brushed-copper);
  padding-top: var(--space-4);
}

.card-room-explore__items p {
  max-width: 30ch;
}

.card-room-explore__items .text-link + .text-link {
  margin-top: var(--space-2);
}

.card-room-contact {
  padding-top: 0;
}

.card-room-contact__band {
  grid-template-columns: minmax(0, 7fr) minmax(0, 2fr) minmax(0, 3fr);
  align-items: center;
  border-radius: var(--radius-4);
  background: var(--color-celadon-green);
  padding: var(--space-7);
}

.card-room-contact__copy {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: 58ch;
}

.card-room-contact__copy p:last-child {
  margin-bottom: 0;
}

.card-room-contact__action {
  grid-column: 3;
  width: 100%;
  min-width: 0;
}

@media (max-width: 1050px) {
  .card-room-hero__grid { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); }
  .card-room-hero__media { width: 100%; margin-left: 0; }
}

@media (max-width: 1000px) {
  .card-room-tables__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-room-tables__copy { grid-column: 1; }
  .card-room-tables__media { grid-column: 2; }
  .card-room-tables__details { grid-column: 1 / span 2; }
  .card-room-dining__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
  .card-room-dining__copy { grid-column: 1; }
  .card-room-dining__media { grid-column: 2; }
}

@media (max-width: 980px) {
  .card-room-principles__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-room-principle:last-child { grid-column: 1 / span 2; max-width: calc(50% - var(--space-3)); }
  .card-room-dining__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-room-dining__items article:last-child { grid-column: 1 / span 2; max-width: calc(50% - var(--space-3)); }
  .card-room-private__grid { gap: var(--space-6); }
}

@media (max-width: 960px) {
  .card-room-threshold__top { gap: var(--space-5); }
  .card-room-threshold__routes article { padding-inline: var(--space-5); }
}

@media (max-width: 940px) {
  .card-room-explore__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-room-explore__items article:last-child { grid-column: 1 / span 2; max-width: calc(50% - var(--space-3)); }
}

@media (max-width: 900px) {
  .card-room-rhythm__grid { grid-template-columns: 1fr; gap: var(--space-7); }
  .card-room-rhythm__copy, .card-room-rhythm__steps { grid-column: 1; }
  .card-room-rhythm__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .card-room-rhythm__steps article { grid-template-columns: 1fr; padding-left: var(--space-3); }
}

@media (max-width: 850px) {
  .card-room-contact__band { grid-template-columns: 1fr; gap: var(--space-5); }
  .card-room-contact__copy, .card-room-contact__action { grid-column: 1; }
  .card-room-contact__action { width: auto; min-width: 15rem; }
}

@media (max-width: 760px) {
  .card-room-hero__grid,
  .card-room-tables__grid,
  .card-room-threshold__top,
  .card-room-dining__top,
  .card-room-private__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .card-room-hero__media { grid-row: 1; height: auto; aspect-ratio: 3 / 2; }
  .card-room-hero__copy { grid-row: 2; max-width: 34ch; padding-left: 0; border-left: 0; }
  .card-room-hero__action { width: 100%; }
  .card-room-tables__media { grid-column: 1; grid-row: 1; margin-top: 0; }
  .card-room-tables__copy { grid-column: 1; grid-row: 2; max-width: 38ch; }
  .card-room-tables__details { grid-column: 1; grid-row: 3; grid-template-columns: 1fr; gap: var(--space-5); margin-top: 0; }
  .card-room-tables__details article { max-width: 40ch; }
  .card-room-threshold__copy, .card-room-threshold__media { grid-column: 1; transform: none; }
  .card-room-threshold__media { grid-row: 1; }
  .card-room-threshold__copy { grid-row: 2; max-width: 38ch; }
  .card-room-threshold__routes { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); }
  .card-room-threshold__routes article, .card-room-threshold__routes article:first-child { padding: 0; border-right: 0; border-bottom: 1px solid var(--color-brushed-copper); padding-bottom: var(--space-5); }
  .card-room-dining__copy, .card-room-dining__media { grid-column: 1; }
  .card-room-dining__copy { max-width: 38ch; }
  .card-room-dining__items { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); }
  .card-room-dining__items article:last-child { grid-column: 1; max-width: none; }
  .card-room-private__copy { max-width: 38ch; }
  .card-room-private__uses { gap: var(--space-4); }
  .card-room-private__uses article { padding: var(--space-4) 0; }
  .card-room-explore__items { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); }
  .card-room-explore__items article:last-child { grid-column: 1; max-width: none; }
}

@media (max-width: 720px) {
  .card-room-principles__list { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); }
  .card-room-principle:last-child { grid-column: 1; max-width: none; }
  .card-room-principle p:not(.card-room-principle__number) { max-width: 40ch; }
  .card-room-rhythm__steps { grid-template-columns: 1fr; }
  .card-room-rhythm__steps article { grid-template-columns: 2rem minmax(0, 1fr); }
}

@media (max-width: 599px) {
  .card-room-page > section { transform: none; }
  .card-room-hero__copy h1 { font-size: 2.5rem; }
  .card-room-hero__copy .lead { font-size: 1.1875rem; }
  .card-room-contact__band { border-radius: var(--radius-3); padding: var(--space-5); }
  .card-room-contact__action { width: 100%; min-height: 3rem; }
  .card-room-explore__items .text-link { width: max-content; max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .card-room-page > section { opacity: 1; transform: none; transition: none; }
  .card-room-hero__media img { transition: none; }
  .card-room-hero__media:hover img { transform: none; }
}
