/* Keep related photographs together while preserving each original composition. */
.image-row {
  --photo-height: 280px;
  --row-gap: 22px;
  grid-column: 1 / -1;
  width: 100%;
  max-width: 1120px;
  min-width: 0;
  margin: 16px auto 0;
}

.image-row-track {
  display: flex;
  align-items: flex-start;
  gap: var(--row-gap);
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
  scrollbar-width: thin;
  scrollbar-color: #555e4d66 transparent;
  padding: 4px 2px 12px;
}

.image-row-track > * {
  flex: 0 0 auto;
  min-width: 0;
  scroll-snap-align: start;
}

.image-row-track > :last-child { scroll-snap-align: end; }

.image-row--photos .range-figure {
  width: clamp(148px, calc(var(--photo-height) * var(--photo-ratio)), min(84%, 440px));
  margin: 0;
}

.image-row--photos .range-figure img {
  display: block;
  width: 100%;
  height: var(--photo-height);
  max-height: none;
  object-fit: contain;
  object-position: left bottom;
}

.image-row--photos .range-figure figcaption {
  min-height: 0;
  padding: 10px 0 0 !important;
  text-align: left !important;
}

.image-row-lead {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 1120px;
  margin: 10px auto -28px;
}

.image-row-lead .eyebrow { margin-bottom: 12px; }
.image-row-lead .range-thought { margin-bottom: 0 !important; }
.technical-passage .image-row { margin-top: 0; }
.transformation > .image-row { width: 86%; margin: 30px auto 38px; }
.credibility > .image-row { margin-top: 28px; }

.image-row--links { margin: 28px auto 12px; }

.image-row--links .solution-link-card {
  flex-basis: calc((100% - 2 * var(--row-gap)) / 3);
  padding: 12px 0 8px;
}

.image-row--links .solution-link-card .range-card-image {
  width: auto;
  max-width: 100%;
  height: var(--photo-height);
  max-height: var(--photo-height);
  object-fit: contain;
  object-position: left bottom;
  margin-bottom: 0;
}

.image-row-controls {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 2px;
}

.image-row-controls[hidden] { display: none; }

.image-row-controls button {
  appearance: none;
  min-height: 44px;
  padding: 0 15px;
  border: 1px solid #56634d66;
  border-radius: 22px;
  background: transparent;
  color: inherit;
  font: 12px/1.2 'DM Sans', Arial, sans-serif;
  cursor: pointer;
}

.image-row-controls button:hover:enabled { background: #56634d14; }
.image-row-controls button:disabled { opacity: .46; cursor: default; }
.image-row-controls button:focus-visible,
.image-row-track:focus-visible,
.image-row-track > a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -2px;
}

.modern-question-scene img { height: 320px !important; max-height: 320px; }
.modern-single .modern-figure img, .modern-contact .modern-figure img { max-height: 340px; }

@media (max-width: 1100px) {
  .image-row { --photo-height: 255px; --row-gap: 17px; }
}

@media (max-width: 700px) {
  .image-row { --photo-height: 224px; --row-gap: 14px; }
  .image-row--links .solution-link-card { flex-basis: 82%; }
  .image-row-lead { margin: 5px auto -14px; }
  .transformation > .image-row { margin-bottom: 24px; }
  .modern-question-scene img { height: 236px !important; max-height: 236px; }
  .modern-single .modern-figure img, .modern-contact .modern-figure img { max-height: 270px; }
}

/* Complete the crossfade within the shortened opening. */
.ceiling-intro.is-revealing { transition-duration: .55s; }
