/* Room presentation, loaded only by the neomodernizm case study. */
.project--neo .room-story {
  gap: 0;
}

.project--neo .case-brief {
  max-width: none;
  margin-bottom: clamp(28px, 3.5vw, 48px);
}

.project--neo .case-brief > p:last-child {
  margin-bottom: 0;
}


.project--neo .room-presentation-chapter {
  margin-top: clamp(56px, 5vw, 80px);
}

.project--neo .apartment-walk {
  max-width: none;
  margin-top: 36px;
  color: var(--ink-soft);
}

.project--neo .walk-title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  color: var(--ink);
  margin-bottom: 12px;
}

.project--neo .original-description {
  margin-top: 20px;
}

.project--neo .original-description summary:focus-visible {
  outline: 3px solid var(--green);
  outline-offset: 5px;
}

.project--neo .room-section {
  margin-top: clamp(36px, 4vw, 56px);
  padding-top: clamp(20px, 2.5vw, 32px);
  border-top: 1px solid var(--line);
}

.project--neo .room-heading,
.project--neo .room-chapter-heading {
  max-width: none;
  margin-bottom: 32px;
}

.project--neo .room-heading p:not(.eyebrow),
.project--neo .room-chapter-heading p {
  color: var(--ink-soft);
}

.project--neo .room-chapter + .room-chapter {
  margin-top: clamp(36px, 4vw, 56px);
}

.project--neo .room-chapter-heading h4 {
  font-family: var(--serif);
  font-size: clamp(1.25rem, 1.5vw, 1.6rem);
  line-height: 1.25;
  margin: 0 0 14px;
}

.project--neo .room-concept {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 36px);
  align-items: start;
  margin-bottom: clamp(24px, 3vw, 36px);
}

.project--neo .room-concept > header {
  margin-bottom: 0;
}

.project--neo .room-concept .room-moodboard {
  width: min(100%, clamp(300px, 22vw, 340px));
  justify-self: center;
  margin: 0;
}

.project--neo .room-renders {
  --render-gap: clamp(20px, 3vw, 36px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--render-gap);
  align-items: start;
}

/* An unpaired final view keeps one column's width and is centered. */
.project--neo .room-renders > .gallery-item:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  width: calc((100% - var(--render-gap)) / 2);
  justify-self: center;
}

/* Intrinsic image dimensions preserve the complete plans and moodboards. */
.project--neo .room-story .image-button {
  height: auto;
  aspect-ratio: auto;
  background: var(--white);
}

.project--neo .room-story .image-button img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 900px) {
  .project--neo .room-concept .room-moodboard {
    width: min(100%, 240px);
  }
}

@media (max-width: 640px) {
  .project--neo .room-concept,
  .project--neo .room-renders {
    grid-template-columns: minmax(0, 1fr);
  }

  .project--neo .room-concept .room-moodboard {
    width: min(100%, 280px);
  }

  .project--neo .room-renders > .gallery-item:last-child:nth-child(odd) {
    width: 100%;
  }
}

/* Limit prose itself, so section headings retain the full container width. */
.project--neo .reading-copy,
.technical-documentation .technical-heading,
.technical-documentation .technical-group-heading {
  max-width: none;
}

.project--neo .case-brief > p:not(.eyebrow),
.project--neo .room-heading > p:not(.eyebrow),
.project--neo .room-chapter-heading > p,
.project--neo .apartment-walk > p:not(.walk-title),
.project--neo .reading-copy > p,
.technical-documentation .technical-heading > p:not(.eyebrow),
.technical-documentation .technical-group-heading > p {
  max-width: 80ch;
}

@media (max-width: 640px) {
  .project--neo .case-brief > p,
  .project--neo .room-heading > p,
  .project--neo .room-chapter-heading > p,
  .project--neo .apartment-walk > p,
  .project--neo .reading-copy > p,
  .technical-documentation .technical-heading > p,
  .technical-documentation .technical-group-heading > p {
    max-width: none;
  }
}
