.field-camera-gallery {
  margin-top: 2rem;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(156, 188, 202, .24);
  border-radius: 18px;
  background: rgba(19, 39, 51, .56);
}

.field-camera-intro { max-width: 70ch; }
.field-camera-intro h3 { margin: .3rem 0 .55rem; font-size: clamp(1.2rem, 2.2vw, 1.55rem); }
.field-camera-intro p:last-child { margin: 0 0 1.2rem; line-height: 1.55; }
.field-camera-photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.field-camera-photos figure { margin: 0; overflow: hidden; border: 1px solid rgba(156, 188, 202, .22); border-radius: 12px; background: rgba(0, 0, 0, .15); }
.field-camera-photos a { display: block; }
.field-camera-photos a:focus-visible { outline: 3px solid #9bd6ee; outline-offset: -3px; }
.field-camera-photos img { display: block; width: 100%; height: 210px; object-fit: cover; }
.field-camera-photos .field-camera-detail img { object-fit: contain; background: #142734; }
.field-camera-photos figcaption { padding: .55rem .65rem .65rem; font-size: .84rem; line-height: 1.35; }
.field-camera-credit { margin: 1rem 0 0; font-size: .82rem; opacity: .8; }

@media (max-width: 900px) { .field-camera-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px) { .field-camera-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
