/* Keep the complete generated composition, including the eye and contact lens. */
.contact-lens-visual-column {
  display: grid;
  gap: 24px;
  min-width: 0;
  align-content: start;
}

.contact-lens-image {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #e5e7e8;
}

.contact-lens-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% 50%;
}

/* Pair the introduction and photo; give both numbered details their own shared
   row instead of adding their combined height to the photo column. */
@media (min-width: 768px) {
  .contact-lens-grid {
    --contact-lens-columns: repeat(2, minmax(0, 1fr));
    grid-template-columns: var(--contact-lens-columns);
    column-gap: var(--swiss-gap);
    row-gap: 32px;
  }

  .contact-lens-grid > div:first-child {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
  }

  .contact-lens-visual-column {
    display: contents;
  }

  .contact-lens-image {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }

  .contact-lens-details {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: var(--contact-lens-columns);
    column-gap: var(--swiss-gap);
  }

  .contact-lens-details > div {
    border-bottom: 1px solid var(--care-line);
  }
}

@media (min-width: 1200px) {
  .contact-lens-grid {
    --contact-lens-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  }
}
