/* Event photographs retain their original proportions and colour. */
.practice-collection { margin: 0; width: 100%; min-width: 0; color: #252028; }
.practice-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.practice-shot { display: block; overflow: hidden; border-radius: 5px; background: #252028; aspect-ratio: 3 / 2; }
.practice-shot img { display: block; width: 100%; height: 100%; object-fit: contain; transition: opacity .18s ease; }
.practice-shot:hover img { opacity: .88; }
.practice-shot:focus-visible { outline: 3px solid #ad267f; outline-offset: 4px; }
.practice-collection-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-top: 14px; font-size: 14px; line-height: 1.5; color: #625864; }
.practice-credit { font-size: 12px; text-align: right; }
.practice-lightbox { box-sizing: border-box; width: min(1380px,calc(100vw - 48px)); max-width: none; height: min(1100px,calc(100dvh - 48px)); max-height: none; margin: auto; padding: 18px 20px 12px; border: 1px solid #454048; border-radius: 12px; background: #151416; color: #f5f1f5; overflow: hidden; }
.practice-lightbox[open] { display: flex; flex-direction: column; gap: 12px; }
.practice-lightbox::backdrop { background: rgb(0 0 0 / .85); }
.practice-lightbox-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex: 0 0 auto; }
.practice-lightbox-header h3 { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.5; color: #f5f1f5; }
.practice-lightbox button { box-sizing: border-box; min-width: 44px; min-height: 44px; padding: 10px 14px; border: 1px solid #58505c; border-radius: 6px; background: #252127; color: #f5f1f5; font: inherit; font-size: 14px; line-height: 1.4; cursor: pointer; }
.practice-lightbox button:hover { background: #352c36; border-color: #8e768d; }
.practice-lightbox button:focus-visible { outline: 3px solid #f59cce; outline-offset: 3px; }
.practice-lightbox-close { display: flex; gap: 12px; align-items: center; }
.practice-lightbox-close span { font-size: 22px; line-height: 1; }
.practice-lightbox-image { flex: 1 1 0; display: flex; align-items: center; justify-content: center; min-height: 0; min-width: 0; overflow: hidden; }
.practice-lightbox-image img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.practice-lightbox-controls { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.practice-lightbox-controls [data-practice-counter] { font-size: 14px; color: #c9bdc9; font-variant-numeric: tabular-nums; }
.practice-lightbox-credit { flex: 0 0 auto; margin: 0; text-align: center; font-size: 11px; line-height: 1.5; color: #a79aa7; }
@media (max-width: 680px) {
  .practice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .practice-collection-caption { gap: 12px; font-size: 13px; }
  .practice-credit { max-width: 150px; font-size: 11px; }
  .practice-lightbox { width: calc(100vw - 20px); height: calc(100dvh - 20px); padding: 10px; border-radius: 9px; }
  .practice-lightbox[open] { gap: 10px; }
  .practice-lightbox-header h3 { font-size: 13px; }
  .practice-lightbox-controls { gap: 8px; }
  .practice-lightbox button { padding: 10px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .practice-shot img { transition: none; } }
