/* CRK Gallery: repeating mosaic + lightbox */
.crk-gallery.mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 240px; gap: 12px; grid-auto-flow: dense; }
.crk-gallery.mosaic figure { margin: 0; overflow: hidden; }
.crk-gallery.mosaic figure:nth-child(n) { grid-column: auto; grid-row: auto; }
.crk-gallery.mosaic figure:nth-child(6n+1) { grid-column: span 2; grid-row: span 2; }
.crk-gallery.mosaic figure:nth-child(6n+4) { grid-row: span 2; }
.crk-gallery.mosaic a { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.crk-gallery.mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s cubic-bezier(.22,.61,.36,1); }
.crk-gallery.mosaic figure:hover img { transform: scale(1.06); }
@media (max-width: 782px) {
	.crk-gallery.mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
	.crk-gallery.mosaic figure:nth-child(6n+4) { grid-row: auto; }
}
.crkg-lb { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(12, 11, 9, .94); opacity: 0; visibility: hidden; transition: opacity .3s; }
.crkg-lb.is-open { opacity: 1; visibility: visible; }
.crkg-lb img { max-width: 90vw; max-height: 82vh; object-fit: contain; box-shadow: 0 30px 80px rgba(0,0,0,.5); border: 1px solid rgba(201,162,74,.38); }
.crkg-lb figcaption { position: absolute; bottom: 4vh; left: 0; right: 0; text-align: center; color: #ECD08A; font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 20px; }
.crkg-lb button { position: absolute; background: none; border: 1px solid rgba(201,162,74,.5); color: #ECD08A; width: 48px; height: 48px; font-size: 26px; line-height: 1; cursor: pointer; transition: background .3s, color .3s; }
.crkg-lb button:hover { background: #C9A24A; color: #14120F; }
.crkg-lb__close { top: 24px; right: 24px; }
.crkg-lb__prev { left: 24px; top: 50%; transform: translateY(-50%); }
.crkg-lb__next { right: 24px; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) { .crkg-lb__prev, .crkg-lb__next { top: auto; bottom: 18px; transform: none; } }