/* Compact, opt-in case gallery. */
.case-gallery.case-gallery--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.case-gallery--compact figure { height: auto; aspect-ratio: 1; }
.case-gallery--compact a { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.case-gallery--compact img { display: block; width: 100%; height: 100%; object-fit: cover; }
.case-gallery--compact a:focus-visible { outline: 3px solid #cbb26a; outline-offset: -4px; }
@media (min-width: 650px) { .case-gallery.case-gallery--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.case-photo-dialog { position: fixed; inset: 0; margin: auto; padding: 52px 12px 12px; border: 1px solid #cbb26a; border-radius: 16px; background: #171717; color: #fff; max-width: 96vw; max-height: 94vh; max-height: 94dvh; }
.case-photo-dialog::backdrop { background: rgba(0, 0, 0, .88); }
.case-photo-dialog img { display: block; width: auto; height: auto; max-width: 88vw; max-height: 72vh; max-height: 72dvh; object-fit: contain; margin: auto; }
.case-photo-dialog button { position: absolute; top: 8px; right: 12px; min-width: 44px; min-height: 36px; padding: 6px 12px; border: 1px solid #cbb26a; border-radius: 8px; background: #171717; color: #fff; cursor: pointer; font: inherit; }
.case-photo-dialog p { max-width: 70ch; margin: 12px auto 0; font-size: 14px; line-height: 1.4; }
/* Inline photographs share the same full-size viewer. */
.case-photo--compact { width: 100%; max-width: 320px; aspect-ratio: 1; justify-self: center; align-self: center; margin-inline: auto; }
.case-photo--compact a { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.case-photo--compact img { display: block; width: 100%; height: 100%; object-fit: cover; }
.case-photo--compact a:focus-visible { outline: 3px solid #cbb26a; outline-offset: -4px; }
